From d61ba7ef78966b0903b623d18d258fbba923f712 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Thu, 27 Jun 2019 12:30:45 +0100 Subject: [PATCH] vendor: update all dependencies --- go.mod | 46 +- go.sum | 201 +- vendor/cloud.google.com/go/AUTHORS | 15 - vendor/cloud.google.com/go/CONTRIBUTORS | 40 - .../pipeline/defaultlog_windows.go | 2 +- .../Azure/azure-pipeline-go/pipeline/error.go | 88 +- vendor/github.com/Unknwon/goconfig/conf.go | 2 +- .../aws/aws-sdk-go/aws/awserr/error.go | 23 +- .../aws/aws-sdk-go/aws/awserr/types.go | 29 +- .../aws-sdk-go/aws/credentials/credentials.go | 3 +- .../ec2rolecreds/ec2_role_provider.go | 6 +- .../aws/credentials/endpointcreds/provider.go | 15 +- .../stscreds/assume_role_provider.go | 17 +- .../aws/aws-sdk-go/aws/csm/reporter.go | 2 +- .../aws/aws-sdk-go/aws/ec2metadata/api.go | 4 +- .../aws/aws-sdk-go/aws/ec2metadata/service.go | 4 +- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 530 +- .../aws/endpoints/dep_service_ids.go | 2 +- .../aws/request/connection_reset_error.go | 17 +- .../request/connection_reset_error_other.go | 11 - .../aws/aws-sdk-go/aws/request/handlers.go | 45 + .../aws/aws-sdk-go/aws/request/request.go | 45 +- .../aws/aws-sdk-go/aws/session/credentials.go | 203 + .../aws/aws-sdk-go/aws/session/session.go | 186 +- .../aws-sdk-go/aws/session/shared_config.go | 14 +- vendor/github.com/aws/aws-sdk-go/aws/types.go | 20 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/internal/ini/ini_parser.go | 6 +- .../private/protocol/json/jsonutil/build.go | 296 + .../protocol/json/jsonutil/unmarshal.go | 250 + .../private/protocol/query/build.go | 2 +- .../private/protocol/query/unmarshal.go | 2 +- .../private/protocol/query/unmarshal_error.go | 83 +- .../aws-sdk-go/private/protocol/rest/build.go | 20 +- .../private/protocol/rest/unmarshal.go | 12 +- .../private/protocol/restxml/restxml.go | 6 +- .../private/protocol/xml/xmlutil/unmarshal.go | 19 + .../aws/aws-sdk-go/service/s3/api.go | 524 +- .../aws-sdk-go/service/s3/bucket_location.go | 3 +- .../aws-sdk-go/service/s3/customizations.go | 3 +- .../aws-sdk-go/service/s3/s3manager/batch.go | 6 +- .../aws-sdk-go/service/s3/s3manager/upload.go | 39 +- .../service/s3/s3manager/upload_input.go | 9 +- .../aws/aws-sdk-go/service/s3/sse.go | 62 +- .../aws-sdk-go/service/s3/statusok_error.go | 4 +- .../aws-sdk-go/service/s3/unmarshal_error.go | 34 +- .../aws/aws-sdk-go/service/sts/api.go | 941 +- .../aws/aws-sdk-go/service/sts/doc.go | 76 +- .../aws/aws-sdk-go/service/sts/errors.go | 2 +- .../github.com/coreos/bbolt/bolt_riscv64.go | 12 + vendor/github.com/coreos/bbolt/db.go | 12 +- vendor/github.com/coreos/bbolt/freelist.go | 22 + vendor/github.com/coreos/bbolt/tx.go | 27 +- vendor/github.com/nsf/termbox-go/README.md | 1 + .../github.com/sevlyar/go-daemon/.travis.yml | 3 +- .../sevlyar/go-daemon/daemon_unix.go | 16 +- .../sevlyar/go-daemon/lock_file_solaris.go | 40 + .../sevlyar/go-daemon/lock_file_unix.go | 2 +- .../sevlyar/go-daemon/os_executable.go | 11 + .../sevlyar/go-daemon/os_executable_pre18.go | 11 + .../sevlyar/go-daemon/syscall_dup.go | 7 +- .../sevlyar/go-daemon/syscall_dup_pre17.go | 13 + vendor/github.com/spf13/cobra/.gitignore | 2 + vendor/github.com/spf13/cobra/README.md | 9 +- .../spf13/cobra/bash_completions.go | 48 - vendor/github.com/spf13/cobra/command.go | 97 +- .../spf13/cobra/powershell_completions.go | 100 + .../spf13/cobra/powershell_completions.md | 14 + .../spf13/cobra/shell_completions.go | 85 + .../github.com/spf13/cobra/zsh_completions.go | 400 +- .../github.com/spf13/cobra/zsh_completions.md | 39 + vendor/github.com/t3rm1n4l/go-mega/LICENSE | 21 + vendor/go.opencensus.io/Makefile | 3 +- vendor/go.opencensus.io/README.md | 6 +- vendor/go.opencensus.io/go.mod | 17 +- vendor/go.opencensus.io/go.sum | 112 +- .../metric/metricdata/exemplar.go | 5 + .../metric/metricdata/label.go | 7 + .../metric/metricdata/metric.go | 10 +- vendor/go.opencensus.io/opencensus.go | 2 +- .../go.opencensus.io/plugin/ochttp/server.go | 9 + vendor/go.opencensus.io/stats/record.go | 94 +- .../stats/view/view_to_metric.go | 23 +- vendor/go.opencensus.io/stats/view/worker.go | 2 + .../stats/view/worker_commands.go | 4 + vendor/go.opencensus.io/tag/key.go | 10 + vendor/go.opencensus.io/tag/map.go | 66 +- vendor/go.opencensus.io/tag/map_codec.go | 12 +- vendor/go.opencensus.io/tag/metadata.go | 52 + vendor/go.opencensus.io/tag/profile_19.go | 2 +- vendor/golang.org/x/crypto/ed25519/ed25519.go | 5 + .../x/crypto/ed25519/ed25519_go113.go | 73 + .../x/crypto/internal/chacha20/asm_ppc64le.s | 2 +- .../internal/chacha20/chacha_ppc64le.go | 7 +- vendor/golang.org/x/crypto/ssh/common.go | 7 + vendor/golang.org/x/crypto/ssh/kex.go | 249 + vendor/golang.org/x/crypto/ssh/messages.go | 30 + vendor/golang.org/x/crypto/ssh/server.go | 6 + .../golang.org/x/net/bpf/vm_instructions.go | 3 +- vendor/golang.org/x/net/http2/server.go | 26 +- .../x/net/internal/socket/sys_posix.go | 6 +- .../x/net/internal/socket/zsys_darwin_386.go | 2 +- .../net/internal/socket/zsys_darwin_amd64.go | 2 +- .../x/net/internal/socket/zsys_darwin_arm.go | 2 +- .../net/internal/socket/zsys_darwin_arm64.go | 2 +- .../internal/socket/zsys_dragonfly_amd64.go | 2 +- .../x/net/internal/socket/zsys_freebsd_386.go | 2 +- .../net/internal/socket/zsys_freebsd_amd64.go | 2 +- .../x/net/internal/socket/zsys_freebsd_arm.go | 2 +- .../net/internal/socket/zsys_freebsd_arm64.go | 53 + .../x/net/internal/socket/zsys_linux_386.go | 2 +- .../x/net/internal/socket/zsys_linux_amd64.go | 2 +- .../x/net/internal/socket/zsys_linux_arm.go | 2 +- .../x/net/internal/socket/zsys_linux_arm64.go | 2 +- .../x/net/internal/socket/zsys_linux_mips.go | 2 +- .../net/internal/socket/zsys_linux_mips64.go | 2 +- .../internal/socket/zsys_linux_mips64le.go | 2 +- .../net/internal/socket/zsys_linux_mipsle.go | 2 +- .../x/net/internal/socket/zsys_linux_ppc64.go | 2 +- .../net/internal/socket/zsys_linux_ppc64le.go | 2 +- .../x/net/internal/socket/zsys_linux_s390x.go | 2 +- .../x/net/internal/socket/zsys_netbsd_386.go | 2 +- .../net/internal/socket/zsys_netbsd_amd64.go | 2 +- .../x/net/internal/socket/zsys_netbsd_arm.go | 2 +- .../x/net/internal/socket/zsys_openbsd_386.go | 2 +- .../net/internal/socket/zsys_openbsd_amd64.go | 2 +- .../x/net/internal/socket/zsys_openbsd_arm.go | 2 +- .../net/internal/socket/zsys_openbsd_arm64.go | 53 + .../net/internal/socket/zsys_solaris_amd64.go | 2 +- vendor/golang.org/x/net/ipv4/zsys_darwin.go | 2 +- .../golang.org/x/net/ipv4/zsys_dragonfly.go | 2 +- .../golang.org/x/net/ipv4/zsys_freebsd_386.go | 2 +- .../x/net/ipv4/zsys_freebsd_amd64.go | 2 +- .../golang.org/x/net/ipv4/zsys_freebsd_arm.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_386.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_amd64.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_arm.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_arm64.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_mips.go | 2 +- .../x/net/ipv4/zsys_linux_mips64.go | 2 +- .../x/net/ipv4/zsys_linux_mips64le.go | 2 +- .../x/net/ipv4/zsys_linux_mipsle.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_ppc.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_ppc64.go | 2 +- .../x/net/ipv4/zsys_linux_ppc64le.go | 2 +- .../golang.org/x/net/ipv4/zsys_linux_s390x.go | 2 +- vendor/golang.org/x/net/ipv4/zsys_netbsd.go | 2 +- vendor/golang.org/x/net/ipv4/zsys_openbsd.go | 2 +- vendor/golang.org/x/net/ipv4/zsys_solaris.go | 2 +- vendor/golang.org/x/net/publicsuffix/table.go | 19623 ++++++++-------- vendor/golang.org/x/oauth2/google/google.go | 11 +- vendor/golang.org/x/oauth2/jwt/jwt.go | 21 +- vendor/golang.org/x/oauth2/oauth2.go | 2 +- vendor/golang.org/x/sys/unix/dirent.go | 89 +- vendor/golang.org/x/sys/unix/mkall.sh | 8 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 1 + vendor/golang.org/x/sys/unix/mkpost.go | 4 +- vendor/golang.org/x/sys/unix/mksysnum.go | 2 +- .../x/sys/unix/readdirent_getdents.go | 12 + .../x/sys/unix/readdirent_getdirentries.go | 19 + vendor/golang.org/x/sys/unix/syscall_aix.go | 18 +- vendor/golang.org/x/sys/unix/syscall_bsd.go | 12 +- .../golang.org/x/sys/unix/syscall_darwin.go | 12 + .../x/sys/unix/syscall_dragonfly.go | 17 + .../golang.org/x/sys/unix/syscall_freebsd.go | 94 +- vendor/golang.org/x/sys/unix/syscall_linux.go | 25 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 37 +- .../golang.org/x/sys/unix/syscall_openbsd.go | 37 +- .../golang.org/x/sys/unix/syscall_solaris.go | 17 + vendor/golang.org/x/sys/unix/types_freebsd.go | 50 +- vendor/golang.org/x/sys/unix/types_netbsd.go | 1 + vendor/golang.org/x/sys/unix/types_openbsd.go | 1 + .../x/sys/unix/zerrors_linux_386.go | 39 + .../x/sys/unix/zerrors_linux_amd64.go | 39 + .../x/sys/unix/zerrors_linux_arm.go | 39 + .../x/sys/unix/zerrors_linux_arm64.go | 39 + .../x/sys/unix/zerrors_linux_mips.go | 39 + .../x/sys/unix/zerrors_linux_mips64.go | 39 + .../x/sys/unix/zerrors_linux_mips64le.go | 39 + .../x/sys/unix/zerrors_linux_mipsle.go | 39 + .../x/sys/unix/zerrors_linux_ppc64.go | 39 + .../x/sys/unix/zerrors_linux_ppc64le.go | 39 + .../x/sys/unix/zerrors_linux_riscv64.go | 39 + .../x/sys/unix/zerrors_linux_s390x.go | 39 + .../x/sys/unix/zerrors_linux_sparc64.go | 39 + .../x/sys/unix/zsyscall_dragonfly_amd64.go | 17 + .../x/sys/unix/zsyscall_freebsd_386.go | 12 +- .../x/sys/unix/zsyscall_freebsd_amd64.go | 12 +- .../x/sys/unix/zsyscall_freebsd_arm.go | 12 +- .../x/sys/unix/zsyscall_freebsd_arm64.go | 12 +- .../x/sys/unix/zsyscall_linux_386.go | 20 + .../x/sys/unix/zsyscall_linux_amd64.go | 20 + .../x/sys/unix/zsyscall_linux_arm.go | 20 + .../x/sys/unix/zsyscall_linux_arm64.go | 20 + .../x/sys/unix/zsyscall_linux_mips.go | 20 + .../x/sys/unix/zsyscall_linux_mips64.go | 20 + .../x/sys/unix/zsyscall_linux_mips64le.go | 20 + .../x/sys/unix/zsyscall_linux_mipsle.go | 20 + .../x/sys/unix/zsyscall_linux_ppc64.go | 20 + .../x/sys/unix/zsyscall_linux_ppc64le.go | 20 + .../x/sys/unix/zsyscall_linux_riscv64.go | 20 + .../x/sys/unix/zsyscall_linux_s390x.go | 20 + .../x/sys/unix/zsyscall_linux_sparc64.go | 20 + .../x/sys/unix/zsyscall_netbsd_386.go | 2 +- .../x/sys/unix/zsyscall_netbsd_amd64.go | 2 +- .../x/sys/unix/zsyscall_netbsd_arm.go | 2 +- .../x/sys/unix/zsyscall_netbsd_arm64.go | 2 +- .../x/sys/unix/zsyscall_openbsd_386.go | 2 +- .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 +- .../x/sys/unix/zsyscall_openbsd_arm.go | 2 +- .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 +- .../x/sys/unix/zsysnum_freebsd_386.go | 23 +- .../x/sys/unix/zsysnum_freebsd_amd64.go | 23 +- .../x/sys/unix/zsysnum_freebsd_arm.go | 23 +- .../x/sys/unix/zsysnum_freebsd_arm64.go | 445 +- .../x/sys/unix/ztypes_freebsd_386.go | 103 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 110 +- .../x/sys/unix/ztypes_freebsd_arm.go | 87 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 88 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 17 + .../x/sys/unix/ztypes_linux_amd64.go | 17 + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 17 + .../x/sys/unix/ztypes_linux_arm64.go | 17 + .../x/sys/unix/ztypes_linux_mips.go | 17 + .../x/sys/unix/ztypes_linux_mips64.go | 17 + .../x/sys/unix/ztypes_linux_mips64le.go | 17 + .../x/sys/unix/ztypes_linux_mipsle.go | 17 + .../x/sys/unix/ztypes_linux_ppc64.go | 17 + .../x/sys/unix/ztypes_linux_ppc64le.go | 17 + .../x/sys/unix/ztypes_linux_riscv64.go | 17 + .../x/sys/unix/ztypes_linux_s390x.go | 17 + .../x/sys/unix/ztypes_linux_sparc64.go | 17 + .../x/sys/unix/ztypes_netbsd_386.go | 1 + .../x/sys/unix/ztypes_netbsd_amd64.go | 1 + .../x/sys/unix/ztypes_netbsd_arm.go | 1 + .../x/sys/unix/ztypes_netbsd_arm64.go | 1 + .../x/sys/unix/ztypes_openbsd_386.go | 1 + .../x/sys/unix/ztypes_openbsd_amd64.go | 1 + .../x/sys/unix/ztypes_openbsd_arm.go | 1 + .../x/sys/unix/ztypes_openbsd_arm64.go | 1 + vendor/golang.org/x/sys/windows/mkerrors.bash | 2 +- .../x/sys/windows/mkknownfolderids.bash | 27 + vendor/golang.org/x/sys/windows/service.go | 7 + .../x/sys/windows/syscall_windows.go | 50 +- .../golang.org/x/sys/windows/types_windows.go | 43 + .../x/sys/windows/zerrors_windows.go | 2 +- .../x/sys/windows/zknownfolderids_windows.go | 149 + .../x/sys/windows/zsyscall_windows.go | 120 +- .../api/drive/v2/drive-api.json | 882 +- .../api/drive/v2/drive-gen.go | 2400 +- .../api/drive/v3/drive-api.json | 795 +- .../api/drive/v3/drive-gen.go | 2213 +- .../api/storage/v1/storage-api.json | 548 +- .../api/storage/v1/storage-gen.go | 1604 +- vendor/google.golang.org/appengine/README.md | 27 + vendor/google.golang.org/appengine/go.mod | 9 +- vendor/google.golang.org/appengine/go.sum | 16 + .../googleapis/rpc/status/status.pb.go | 26 +- vendor/google.golang.org/grpc/CONTRIBUTING.md | 57 +- vendor/google.golang.org/grpc/README.md | 76 +- .../grpc/balancer/balancer.go | 6 + .../grpc/balancer_v1_wrapper.go | 13 +- vendor/google.golang.org/grpc/clientconn.go | 67 + vendor/google.golang.org/grpc/codes/codes.go | 3 +- vendor/google.golang.org/grpc/dialoptions.go | 36 +- vendor/google.golang.org/grpc/go.mod | 5 +- vendor/google.golang.org/grpc/go.sum | 10 +- .../grpc/internal/channelz/funcs.go | 30 +- .../grpc/internal/transport/http2_client.go | 39 +- .../grpc/internal/transport/http2_server.go | 106 +- .../grpc/internal/transport/transport.go | 13 +- .../google.golang.org/grpc/picker_wrapper.go | 8 + vendor/google.golang.org/grpc/preloader.go | 64 + .../grpc/resolver/dns/dns_resolver.go | 19 + .../grpc/resolver/resolver.go | 15 + vendor/google.golang.org/grpc/rpc_util.go | 26 +- vendor/google.golang.org/grpc/server.go | 116 +- vendor/google.golang.org/grpc/stream.go | 53 +- vendor/google.golang.org/grpc/version.go | 2 +- vendor/google.golang.org/grpc/vet.sh | 6 +- vendor/modules.txt | 43 +- 281 files changed, 25277 insertions(+), 12559 deletions(-) delete mode 100644 vendor/cloud.google.com/go/AUTHORS delete mode 100644 vendor/cloud.google.com/go/CONTRIBUTORS delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error_other.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go create mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go create mode 100644 vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go create mode 100644 vendor/github.com/coreos/bbolt/bolt_riscv64.go create mode 100644 vendor/github.com/sevlyar/go-daemon/lock_file_solaris.go create mode 100644 vendor/github.com/sevlyar/go-daemon/os_executable.go create mode 100644 vendor/github.com/sevlyar/go-daemon/os_executable_pre18.go create mode 100644 vendor/github.com/sevlyar/go-daemon/syscall_dup_pre17.go create mode 100644 vendor/github.com/spf13/cobra/powershell_completions.go create mode 100644 vendor/github.com/spf13/cobra/powershell_completions.md create mode 100644 vendor/github.com/spf13/cobra/shell_completions.go create mode 100644 vendor/github.com/spf13/cobra/zsh_completions.md create mode 100644 vendor/github.com/t3rm1n4l/go-mega/LICENSE create mode 100644 vendor/go.opencensus.io/tag/metadata.go create mode 100644 vendor/golang.org/x/crypto/ed25519/ed25519_go113.go create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go create mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash create mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go create mode 100644 vendor/google.golang.org/grpc/preloader.go diff --git a/go.mod b/go.mod index 5c9d5fcd3..8c2645f00 100644 --- a/go.mod +++ b/go.mod @@ -2,26 +2,24 @@ module github.com/ncw/rclone require ( bazil.org/fuse v0.0.0-20180421153158-65cc252bf669 - cloud.google.com/go v0.37.4 // indirect - github.com/Azure/azure-pipeline-go v0.1.8 + cloud.google.com/go v0.40.0 // indirect + github.com/Azure/azure-pipeline-go v0.1.9 github.com/Azure/azure-storage-blob-go v0.6.0 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 - github.com/Unknwon/goconfig v0.0.0-20181105214110-56bd8ab18619 + github.com/Unknwon/goconfig v0.0.0-20190425194916-3dba17dd7b9e github.com/a8m/tree v0.0.0-20181222104329-6a0b80129de4 github.com/abbot/go-http-auth v0.4.0 - github.com/anacrolix/dms v0.0.0-20180117034613-8af4925bffb5 + github.com/anacrolix/dms v1.0.0 github.com/atotto/clipboard v0.1.2 - github.com/aws/aws-sdk-go v1.19.11 + github.com/aws/aws-sdk-go v1.20.10 github.com/billziss-gh/cgofuse v1.1.0 - github.com/coreos/bbolt v1.3.2 + github.com/coreos/bbolt v1.3.3 github.com/djherbis/times v1.2.0 github.com/dropbox/dropbox-sdk-go-unofficial v5.4.0+incompatible github.com/goftp/file-driver v0.0.0-20180502053751-5d604a0fc0c9 // indirect github.com/goftp/server v0.0.0-20190304020633-eabccc535b5a - github.com/golang/protobuf v1.3.1 // indirect github.com/google/go-querystring v1.0.0 // indirect - github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e // indirect - github.com/hashicorp/golang-lru v0.5.1 // indirect + github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c // indirect github.com/jlaffaye/ftp v0.0.0-20190624084859-c1312a7102bf github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/koofr/go-httpclient v0.0.0-20180104120329-03786175608a @@ -32,7 +30,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 github.com/ncw/go-acd v0.0.0-20171120105400-887eb06ab6a2 github.com/ncw/swift v1.0.47 - github.com/nsf/termbox-go v0.0.0-20190325093121-288510b9734e + github.com/nsf/termbox-go v0.0.0-20190624072549-eeb6cd0a1762 github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd github.com/onsi/ginkgo v1.8.0 // indirect github.com/onsi/gomega v1.5.0 // indirect @@ -41,29 +39,29 @@ require ( github.com/pkg/errors v0.8.1 github.com/pkg/sftp v1.10.1-0.20190523025818-e98a7bef6829 github.com/rfjakob/eme v0.0.0-20171028163933-2222dbd4ba46 - github.com/sevlyar/go-daemon v0.1.4 + github.com/sevlyar/go-daemon v0.1.5 github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e - github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 // indirect + github.com/smartystreets/assertions v1.0.0 // indirect github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a // indirect - github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267 + github.com/spf13/cobra v0.0.5 github.com/spf13/pflag v1.0.3 github.com/stretchr/testify v1.3.0 - github.com/t3rm1n4l/go-mega v0.0.0-20190430100803-72151b53bb44 + github.com/t3rm1n4l/go-mega v0.0.0-20190528125457-55e675378686 github.com/xanzy/ssh-agent v0.2.1 github.com/yunify/qingstor-sdk-go v2.2.15+incompatible - go.etcd.io/bbolt v1.3.2 // indirect - go.opencensus.io v0.20.2 // indirect - golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 - golang.org/x/net v0.0.0-20190606173856-1492cefac77f - golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a + go.etcd.io/bbolt v1.3.3 // indirect + go.opencensus.io v0.22.0 // indirect + golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 + golang.org/x/net v0.0.0-20190620200207-3b0461eec859 + golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/sync v0.0.0-20190423024810-112230192c58 - golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444 + golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb golang.org/x/text v0.3.2 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 - golang.org/x/tools v0.0.0-20190606174628-0139d5756a7d // indirect - google.golang.org/api v0.3.2 - google.golang.org/appengine v1.5.0 // indirect - google.golang.org/grpc v1.20.0 // indirect + google.golang.org/api v0.7.0 + google.golang.org/appengine v1.6.1 // indirect + google.golang.org/genproto v0.0.0-20190626174449-989357319d63 // indirect + google.golang.org/grpc v1.21.1 // indirect gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/yaml.v2 v2.2.2 ) diff --git a/go.sum b/go.sum index 4d0cb09e6..dbd3ee2a1 100644 --- a/go.sum +++ b/go.sum @@ -3,39 +3,44 @@ bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxo cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.4 h1:glPeL3BQJsbF6aIIYfZizMwc5LTYz250bDMjttbBGAU= -cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.40.0 h1:FjSY7bOj+WzJe6TZRVtXI2b9kAYvtNg4lMbcH2+MUkk= +cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= github.com/Azure/azure-pipeline-go v0.1.8 h1:KmVRa8oFMaargVesEuuEoiLCQ4zCCwQ8QX/xg++KS20= github.com/Azure/azure-pipeline-go v0.1.8/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= +github.com/Azure/azure-pipeline-go v0.1.9 h1:u7JFb9fFTE6Y/j8ae2VK33ePrRqJqoCM/IWkQdAZ+rg= +github.com/Azure/azure-pipeline-go v0.1.9/go.mod h1:XA1kFWRVhSK+KNFiOhfv83Fv8L9achrP7OxIzeTn1Yg= github.com/Azure/azure-storage-blob-go v0.6.0 h1:SEATKb3LIHcaSIX+E6/K4kJpwfuozFEsmt5rS56N6CE= github.com/Azure/azure-storage-blob-go v0.6.0/go.mod h1:oGfmITT1V6x//CswqY2gtAHND+xIP64/qL7a5QJix0Y= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/Unknwon/goconfig v0.0.0-20181105214110-56bd8ab18619 h1:6X8iB881g299aNEv6KXrcjL31iLOH7yA6NXoQX+MbDg= -github.com/Unknwon/goconfig v0.0.0-20181105214110-56bd8ab18619/go.mod h1:wngxua9XCNjvHjDiTiV26DaKDT+0c63QR6H5hjVUUxw= +github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= +github.com/Unknwon/goconfig v0.0.0-20190425194916-3dba17dd7b9e h1:ZaFHdRwv6wJQMYsg5qITIsqWRqZRvUETiq0xxrl+8fc= +github.com/Unknwon/goconfig v0.0.0-20190425194916-3dba17dd7b9e/go.mod h1:wngxua9XCNjvHjDiTiV26DaKDT+0c63QR6H5hjVUUxw= github.com/a8m/tree v0.0.0-20181222104329-6a0b80129de4 h1:mK1/QgFPU4osbhjJ26B1w738kjQHaGJcon8uCLMS8fk= github.com/a8m/tree v0.0.0-20181222104329-6a0b80129de4/go.mod h1:FSdwKX97koS5efgm8WevNf7XS3PqtyFkKDDXrz778cg= github.com/abbot/go-http-auth v0.4.0 h1:QjmvZ5gSC7jm3Zg54DqWE/T5m1t2AfDu6QlXJT0EVT0= github.com/abbot/go-http-auth v0.4.0/go.mod h1:Cz6ARTIzApMJDzh5bRMSUou6UMSp0IEXg9km/ci7TJM= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/anacrolix/dms v0.0.0-20180117034613-8af4925bffb5 h1:lmyFvZXNGOmsKCYXNwzDLWafnxeewxsFwdsvTvSC1sg= -github.com/anacrolix/dms v0.0.0-20180117034613-8af4925bffb5/go.mod h1:DGqLjaZ3ziKKNRt+U5Q9PLWJ52Q/4rxfaaH/b3QYKaE= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/anacrolix/dms v1.0.0 h1:4vs/X5AdF0eRqFXg+EbNUdvY7JUz/a4U84v+VAEa7V8= +github.com/anacrolix/dms v1.0.0/go.mod h1:1TQoem5yf/k/DiVLFFQi+JFQ6GZeKxmJfwGr3goLmFQ= +github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/ffprobe v1.0.0/go.mod h1:BIw+Bjol6CWjm/CRWrVLk2Vy+UYlkgmBZ05vpSYqZPw= +github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo= +github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/atotto/clipboard v0.1.2 h1:YZCtFu5Ie8qX2VmVTBnrqLSiU9XOWwqNRmdT3gIQzbY= github.com/atotto/clipboard v0.1.2/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aws/aws-sdk-go v1.19.11 h1:tqaTGER6Byw3QvsjGW0p018U2UOqaJPeJuzoaF7jjoQ= -github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/aws/aws-sdk-go v1.20.10 h1:wrwdNYb9Xe1ahNEEXl0M/O/g/dmonWag1TFAKVNQulM= +github.com/aws/aws-sdk-go v1.20.10/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/billziss-gh/cgofuse v1.1.0 h1:tATn9ZDvuPcOVlvR4tJitGHgAqy1y18+4mKmRfdfjec= github.com/billziss-gh/cgofuse v1.1.0/go.mod h1:LJjoaUojlVjgo5GQoEJTcJNqZJeRU0nCR84CyxKt2YM= +github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= +github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= +github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -46,24 +51,18 @@ 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/djherbis/times v1.2.0 h1:xANXjsC/iBqbO00vkWlYwPWgBgEVU6m6AFYg0Pic+Mc= github.com/djherbis/times v1.2.0/go.mod h1:CGMZlo255K5r4Yw0b9RRfFQpM2y7uOmxg4jm9HsaVf8= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dropbox/dropbox-sdk-go-unofficial v5.4.0+incompatible h1:9jnukMIowLSo3SY7+GTwxmYJv4QC0LxXbo97zHWCyoc= github.com/dropbox/dropbox-sdk-go-unofficial v5.4.0+incompatible/go.mod h1:lr+LhMM3F6Y3lW1T9j2U5l7QeuWm87N9+PPXo3yH4qY= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/goftp/file-driver v0.0.0-20180502053751-5d604a0fc0c9 h1:cC0Hbb+18DJ4i6ybqDybvj4wdIDS4vnD0QEci98PgM8= github.com/goftp/file-driver v0.0.0-20180502053751-5d604a0fc0c9/go.mod h1:GpOj6zuVBG3Inr9qjEnuVTgBlk2lZ1S9DcoFiXWyKss= github.com/goftp/server v0.0.0-20190304020633-eabccc535b5a h1:XTJuuzIub3zu2FgPqdFM9XFYYisXWu2hN/rFwayAIcY= github.com/goftp/server v0.0.0-20190304020633-eabccc535b5a/go.mod h1:k/SS6VWkxY7dHPhoMQ8IdRu8L4lQtmGbhyXGg+vCnXE= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -73,9 +72,12 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -83,10 +85,9 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e h1:XWcjeEtTFTOVA9Fs1w7n2XBftk5ib4oZrhzWk0B+3eA= -github.com/gopherjs/gopherjs v0.0.0-20190411002643-bd77b112433e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c h1:7lF+Vz0LqiRidnzC1Oq86fpX1q/iEv2KJdrCtttYjT4= +github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= @@ -94,162 +95,140 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jlaffaye/ftp v0.0.0-20190411155707-52d3001130a6 h1:tAJSNnBx4ZAfMe8IuISVFsoS13fDJfb54k8/X5jGIfI= -github.com/jlaffaye/ftp v0.0.0-20190411155707-52d3001130a6/go.mod h1:lli8NYPQOFy3O++YmYbqVgOcQ1JPCwdOy+5zSjKJ9qY= -github.com/jlaffaye/ftp v0.0.0-20190427163646-6a014d5e22e6 h1:L8GOc4DyMAj4NyTq5He3pY/tfgLWcgwGXGnan5RWf1A= -github.com/jlaffaye/ftp v0.0.0-20190427163646-6a014d5e22e6/go.mod h1:lli8NYPQOFy3O++YmYbqVgOcQ1JPCwdOy+5zSjKJ9qY= -github.com/jlaffaye/ftp v0.0.0-20190519203911-8f5b34ce006f h1:oUoY3Lvi7PD1F3CuayxfdJtwmKV7WNQBdXt8fK1breU= -github.com/jlaffaye/ftp v0.0.0-20190519203911-8f5b34ce006f/go.mod h1:lli8NYPQOFy3O++YmYbqVgOcQ1JPCwdOy+5zSjKJ9qY= github.com/jlaffaye/ftp v0.0.0-20190624084859-c1312a7102bf h1:2IYBd5TD/maMqTU2YUzp2tJL4cNaOYQ9EBullN9t9pk= github.com/jlaffaye/ftp v0.0.0-20190624084859-c1312a7102bf/go.mod h1:lli8NYPQOFy3O++YmYbqVgOcQ1JPCwdOy+5zSjKJ9qY= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/koofr/go-httpclient v0.0.0-20180104120329-03786175608a h1:W+gnfphB7WpRj0rbTF40e3edULfri4fou2kUFw6AF3A= github.com/koofr/go-httpclient v0.0.0-20180104120329-03786175608a/go.mod h1:3xszwh+rNrYk1r9SStc4iJ326gne1OaBcrdB1ACsbzI= github.com/koofr/go-koofrclient v0.0.0-20190131164641-7f327592caff h1:GlfzG8bgyoJYz+5sMvGpYnHrg4veNVNnDGuE9hTEMHk= github.com/koofr/go-koofrclient v0.0.0-20190131164641-7f327592caff/go.mod h1:MRAz4Gsxd+OzrZ0owwrUHc0zLESL+1Y5syqK/sJxK2A= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-gtk v0.0.0-20190405072524-4deadb416788/go.mod h1:PwzwfeB5syFHXORC3MtPylVcjIoTDT/9cvkKpEndGVI= +github.com/mattn/go-pointer v0.0.0-20180825124634-49522c3f3791/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/ncw/go-acd v0.0.0-20171120105400-887eb06ab6a2 h1:VlXvEx6JbFp7F9iz92zXP2Ew+9VupSpfybr+TxmjdH0= github.com/ncw/go-acd v0.0.0-20171120105400-887eb06ab6a2/go.mod h1:MLIrzg7gp/kzVBxRE1olT7CWYMCklcUWU+ekoxOD9x0= github.com/ncw/swift v1.0.47 h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/nsf/termbox-go v0.0.0-20190325093121-288510b9734e h1:Vbib8wJAaMEF9jusI/kMSYMr/LtRzM7+F9MJgt/nH8k= -github.com/nsf/termbox-go v0.0.0-20190325093121-288510b9734e/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= +github.com/nsf/termbox-go v0.0.0-20190624072549-eeb6cd0a1762 h1:44Lv0bNi88GweB54TCjB/lEJgp+2Ze5WFpwNu0nh0ag= +github.com/nsf/termbox-go v0.0.0-20190624072549-eeb6cd0a1762/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd h1:+iAPaTbi1gZpcpDwe/BW1fx7Xoesv69hLNGPheoyhBs= github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd/go.mod h1:4soZNh0zW0LtYGdQ416i0jO0EIqMGcbtaspRS4BDvRQ= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pengsrc/go-shared v0.2.0 h1:Ho86LhaXOYgv9FjBmIp5CO0LmaIj49H2HZhYh0+7uW8= github.com/pengsrc/go-shared v0.2.0/go.mod h1:jVblp62SafmidSkvWrXyxAme3gaTfEtWwRPGz5cpvHg= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.0 h1:DGA1KlA9esU6WcicH+P8PxFZOl15O6GYtab1cIJdOlE= -github.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk= github.com/pkg/sftp v1.10.1-0.20190523025818-e98a7bef6829 h1:I+1BDgqX1nXLUL5Uio219Nj0Tne+xW0gp2EOENDk00M= github.com/pkg/sftp v1.10.1-0.20190523025818-e98a7bef6829/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk= 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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rfjakob/eme v0.0.0-20171028163933-2222dbd4ba46 h1:w2CpS5muK+jyydnmlkqpAhzKmHmMBzBkfYUDjQNS1Dk= github.com/rfjakob/eme v0.0.0-20171028163933-2222dbd4ba46/go.mod h1:U2bmx0hDj8EyDdcxmD5t3XHDnBFnyNNc22n1R4008eM= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/sevlyar/go-daemon v0.1.4 h1:Ayxp/9SNHwPBjV+kKbnHl2ch6rhxTu08jfkGkoxgULQ= -github.com/sevlyar/go-daemon v0.1.4/go.mod h1:6dJpPatBT9eUwM5VCw9Bt6CdX9Tk6UWvhW3MebLDRKE= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8= +github.com/sevlyar/go-daemon v0.1.5 h1:Zy/6jLbM8CfqJ4x4RPr7MJlSKt90f00kNM1D401C+Qk= +github.com/sevlyar/go-daemon v0.1.5/go.mod h1:6dJpPatBT9eUwM5VCw9Bt6CdX9Tk6UWvhW3MebLDRKE= github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e h1:VAzdS5Nw68fbf5RZ8RDVlUvPXNU6Z3jtPCK/qvm4FoQ= github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 h1:hBSHahWMEgzwRyS6dRpxY0XyjZsHyQ61s084wo5PJe0= -github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8= +github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= +github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267 h1:I9j1PLS64+NgCtkgbomGInboj1NFH1KF1tkVKlt3yF4= -github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/t3rm1n4l/go-mega v0.0.0-20190430100803-72151b53bb44 h1:NP4ucpwRJ0wmpu2/KBu7ymYQq2qKn6/Wlqpt8zhuZrs= -github.com/t3rm1n4l/go-mega v0.0.0-20190430100803-72151b53bb44/go.mod h1:XWL4vDyd3JKmJx+hZWUVgCNmmhZ2dTBcaNDcxH465s0= +github.com/t3rm1n4l/go-mega v0.0.0-20190528125457-55e675378686 h1:U7mF+tjDK9zWoxCU+kBNa1XT7WZMF5bjwtRpjeIkSYw= +github.com/t3rm1n4l/go-mega v0.0.0-20190528125457-55e675378686/go.mod h1:XWL4vDyd3JKmJx+hZWUVgCNmmhZ2dTBcaNDcxH465s0= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yunify/qingstor-sdk-go v2.2.15+incompatible h1:/Z0q3/eSMoPYAuRmhjWtuGSmVVciFC6hfm3yfCKuvz0= github.com/yunify/qingstor-sdk-go v2.2.15+incompatible/go.mod h1:w6wqLDQ5bBTzxGJ55581UrSwLrsTAsdo9N6yX/8d9RY= -go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opencensus.io v0.20.1 h1:pMEjRZ1M4ebWGikflH7nQpV6+Zr88KBMA2XJD3sbijw= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2 h1:NAfh7zF0/3/HqtMvJNZ/RFrSlCE6ZTlHmKfhL/Dm1Jk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734 h1:p/H982KKEjUnLJkM3tt/LemDnOc1GiZL5FCVlORJ5zo= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 h1:ydJNl0ENAG67pFbB+9tfhiL2pYqLhfoaZFw/cjLhY4A= +golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190424112056-4829fb13d2c6 h1:FP8hkuE6yUEaJnK7O2eTuejKWwW+Rhfj80dQ2JcKxCU= -golang.org/x/net v0.0.0-20190424112056-4829fb13d2c6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190606173856-1492cefac77f h1:IWHgpgFqnL5AhBUBZSgBdjl2vkQUEzcY+JNKWfcgAU0= -golang.org/x/net v0.0.0-20190606173856-1492cefac77f/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190415214537-1da14a5a36f2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -257,19 +236,18 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872 h1:cGjJzUd8RgBw428LXP65YXni0aiGNA4Bl+ls8SmLOm8= -golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444 h1:/d2cWp6PSamH4jDPFLyO150psQdqvtoNX8Zjg3AQ31g= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190415145633-3fd5a3612ccd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb h1:fgwFCsaw9buMuxNd6+DQfAuSFqbNiQZpcgJQAgJsK6k= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To= @@ -279,33 +257,39 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190606174628-0139d5756a7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.3.2 h1:iTp+3yyl/KOtxa/d1/JUE0GGSoR6FuW5udver22iwpw= -google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= +google.golang.org/api v0.7.0 h1:9sdfJOzWlkqPltHAuzT2Cp+yrBeY1KRVYgms8soxMwM= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19 h1:Lj2SnHtxkRGJDqnGaSjo+CCdIieEnwVazbOXILwQemk= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107 h1:xtNn7qFlagY2mQNFHMSRPjT2RkOV4OXM7P5TVy9xATo= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190626174449-989357319d63 h1:UsSJe9fhWNSz6emfIGPpH5DF23t7ALo2Pf3sC+/hsdg= +google.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0 h1:DlsSIrgEBuZAUFJcta2B5i/lzeHHbnfkNFAfFXLVFYQ= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405 h1:829vOVxxusYHC+IqBtkX5mbKtsY9fheQiQn0MZRVLfQ= gopkg.in/check.v1 v1.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -319,6 +303,7 @@ gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/vendor/cloud.google.com/go/AUTHORS b/vendor/cloud.google.com/go/AUTHORS deleted file mode 100644 index c364af1da..000000000 --- a/vendor/cloud.google.com/go/AUTHORS +++ /dev/null @@ -1,15 +0,0 @@ -# This is the official list of cloud authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS files. -# See the latter for an explanation. - -# Names should be added to this file as: -# Name or Organization -# The email address is not required for organizations. - -Filippo Valsorda -Google Inc. -Ingo Oeser -Palm Stone Games, Inc. -Paweł Knap -Péter Szilágyi -Tyler Treat diff --git a/vendor/cloud.google.com/go/CONTRIBUTORS b/vendor/cloud.google.com/go/CONTRIBUTORS deleted file mode 100644 index 3b3cbed98..000000000 --- a/vendor/cloud.google.com/go/CONTRIBUTORS +++ /dev/null @@ -1,40 +0,0 @@ -# People who have agreed to one of the CLAs and can contribute patches. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# https://developers.google.com/open-source/cla/individual -# https://developers.google.com/open-source/cla/corporate -# -# Names should be added to this file as: -# Name - -# Keep the list alphabetically sorted. - -Alexis Hunt -Andreas Litt -Andrew Gerrand -Brad Fitzpatrick -Burcu Dogan -Dave Day -David Sansome -David Symonds -Filippo Valsorda -Glenn Lewis -Ingo Oeser -James Hall -Johan Euphrosine -Jonathan Amsterdam -Kunpei Sakai -Luna Duclos -Magnus Hiie -Mario Castro -Michael McGreevy -Omar Jarjur -Paweł Knap -Péter Szilágyi -Sarah Adams -Thanatat Tamtan -Toby Burress -Tuo Shan -Tyler Treat diff --git a/vendor/github.com/Azure/azure-pipeline-go/pipeline/defaultlog_windows.go b/vendor/github.com/Azure/azure-pipeline-go/pipeline/defaultlog_windows.go index cb6739899..85a32732d 100644 --- a/vendor/github.com/Azure/azure-pipeline-go/pipeline/defaultlog_windows.go +++ b/vendor/github.com/Azure/azure-pipeline-go/pipeline/defaultlog_windows.go @@ -35,7 +35,7 @@ const ( ) var reportEvent = func() func(eventType eventType, eventID int32, msg string) { - advAPI32 := syscall.MustLoadDLL("AdvAPI32.dll") + advAPI32 := syscall.MustLoadDLL("advapi32.dll") // lower case to tie in with Go's sysdll registration registerEventSource := advAPI32.MustFindProc("RegisterEventSourceW") sourceName, _ := os.Executable() diff --git a/vendor/github.com/Azure/azure-pipeline-go/pipeline/error.go b/vendor/github.com/Azure/azure-pipeline-go/pipeline/error.go index fd008364d..4aaf06650 100644 --- a/vendor/github.com/Azure/azure-pipeline-go/pipeline/error.go +++ b/vendor/github.com/Azure/azure-pipeline-go/pipeline/error.go @@ -9,6 +9,23 @@ type causer interface { Cause() error } +func errorWithPC(msg string, pc uintptr) string { + s := "" + if fn := runtime.FuncForPC(pc); fn != nil { + file, line := fn.FileLine(pc) + s = fmt.Sprintf("-> %v, %v:%v\n", fn.Name(), file, line) + } + s += msg + "\n\n" + return s +} + +func getPC(callersToSkip int) uintptr { + // Get the PC of Initialize method's caller. + pc := [1]uintptr{} + _ = runtime.Callers(callersToSkip, pc[:]) + return pc[0] +} + // ErrorNode can be an embedded field in a private error object. This field // adds Program Counter support and a 'cause' (reference to a preceding error). // When initializing a error type with this embedded field, initialize the @@ -22,12 +39,7 @@ type ErrorNode struct { // When defining a new error type, have its Error method call this one passing // it the string representation of the error. func (e *ErrorNode) Error(msg string) string { - s := "" - if fn := runtime.FuncForPC(e.pc); fn != nil { - file, line := fn.FileLine(e.pc) - s = fmt.Sprintf("-> %v, %v:%v\n", fn.Name(), file, line) - } - s += msg + "\n\n" + s := errorWithPC(msg, e.pc) if e.cause != nil { s += e.cause.Error() + "\n" } @@ -83,10 +95,8 @@ func (e ErrorNode) Timeout() bool { // value of 3 is very common; but, depending on your code nesting, you may need // a different value. func (ErrorNode) Initialize(cause error, callersToSkip int) ErrorNode { - // Get the PC of Initialize method's caller. - pc := [1]uintptr{} - _ = runtime.Callers(callersToSkip, pc[:]) - return ErrorNode{pc: pc[0], cause: cause} + pc := getPC(callersToSkip) + return ErrorNode{pc: pc, cause: cause} } // Cause walks all the preceding errors and return the originating error. @@ -101,12 +111,53 @@ func Cause(err error) error { return err } +// ErrorNodeNoCause can be an embedded field in a private error object. This field +// adds Program Counter support. +// When initializing a error type with this embedded field, initialize the +// ErrorNodeNoCause field by calling ErrorNodeNoCause{}.Initialize(). +type ErrorNodeNoCause struct { + pc uintptr // Represents a Program Counter that you can get symbols for. +} + +// Error returns a string with the PC's symbols or "" if the PC is invalid. +// When defining a new error type, have its Error method call this one passing +// it the string representation of the error. +func (e *ErrorNodeNoCause) Error(msg string) string { + return errorWithPC(msg, e.pc) +} + +// Temporary returns true if the error occurred due to a temporary condition. +func (e ErrorNodeNoCause) Temporary() bool { + return false +} + +// Timeout returns true if the error occurred due to time expiring. +func (e ErrorNodeNoCause) Timeout() bool { + return false +} + +// Initialize is used to initialize an embedded ErrorNode field. +// It captures the caller's program counter. +// To initialize the field, use "ErrorNodeNoCause{}.Initialize(3)". A callersToSkip +// value of 3 is very common; but, depending on your code nesting, you may need +// a different value. +func (ErrorNodeNoCause) Initialize(callersToSkip int) ErrorNodeNoCause { + pc := getPC(callersToSkip) + return ErrorNodeNoCause{pc: pc} +} + // NewError creates a simple string error (like Error.New). But, this -// error also captures the caller's Program Counter and the preceding error. +// error also captures the caller's Program Counter and the preceding error (if provided). func NewError(cause error, msg string) error { - return &pcError{ - ErrorNode: ErrorNode{}.Initialize(cause, 3), - msg: msg, + if cause != nil { + return &pcError{ + ErrorNode: ErrorNode{}.Initialize(cause, 3), + msg: msg, + } + } + return &pcErrorNoCause{ + ErrorNodeNoCause: ErrorNodeNoCause{}.Initialize(3), + msg: msg, } } @@ -119,3 +170,12 @@ type pcError struct { // Error satisfies the error interface. It shows the error with Program Counter // symbols and calls Error on the preceding error so you can see the full error chain. func (e *pcError) Error() string { return e.ErrorNode.Error(e.msg) } + +// pcErrorNoCause is a simple string error (like error.New) with an ErrorNode (PC). +type pcErrorNoCause struct { + ErrorNodeNoCause + msg string +} + +// Error satisfies the error interface. It shows the error with Program Counter symbols. +func (e *pcErrorNoCause) Error() string { return e.ErrorNodeNoCause.Error(e.msg) } diff --git a/vendor/github.com/Unknwon/goconfig/conf.go b/vendor/github.com/Unknwon/goconfig/conf.go index 4e7c8adc9..dc19803e9 100644 --- a/vendor/github.com/Unknwon/goconfig/conf.go +++ b/vendor/github.com/Unknwon/goconfig/conf.go @@ -263,7 +263,7 @@ func (c *ConfigFile) MustValue(section, key string, defaultVal ...string) string return val } -// MustValue always returns value without error, +// MustValueSet always returns value without error, // It returns empty string if error occurs, or the default value if given, // and a bool value indicates whether default value is returned. func (c *ConfigFile) MustValueSet(section, key string, defaultVal ...string) (string, bool) { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go b/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go index 56fdfc2bf..99849c0e1 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/awserr/error.go @@ -138,8 +138,27 @@ type RequestFailure interface { RequestID() string } -// NewRequestFailure returns a new request error wrapper for the given Error -// provided. +// NewRequestFailure returns a wrapped error with additional information for +// request status code, and service requestID. +// +// Should be used to wrap all request which involve service requests. Even if +// the request failed without a service response, but had an HTTP status code +// that may be meaningful. func NewRequestFailure(err Error, statusCode int, reqID string) RequestFailure { return newRequestError(err, statusCode, reqID) } + +// UnmarshalError provides the interface for the SDK failing to unmarshal data. +type UnmarshalError interface { + awsError + Bytes() []byte +} + +// NewUnmarshalError returns an initialized UnmarshalError error wrapper adding +// the bytes that fail to unmarshal to the error. +func NewUnmarshalError(err error, msg string, bytes []byte) UnmarshalError { + return &unmarshalError{ + awsError: New("UnmarshalError", msg, err), + bytes: bytes, + } +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go b/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go index 0202a008f..a2c5817c4 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/awserr/types.go @@ -1,6 +1,9 @@ package awserr -import "fmt" +import ( + "encoding/hex" + "fmt" +) // SprintError returns a string of the formatted error code. // @@ -119,6 +122,7 @@ type requestError struct { awsError statusCode int requestID string + bytes []byte } // newRequestError returns a wrapped error with additional information for @@ -170,6 +174,29 @@ func (r requestError) OrigErrs() []error { return []error{r.OrigErr()} } +type unmarshalError struct { + awsError + bytes []byte +} + +// Error returns the string representation of the error. +// Satisfies the error interface. +func (e unmarshalError) Error() string { + extra := hex.Dump(e.bytes) + return SprintError(e.Code(), e.Message(), extra, e.OrigErr()) +} + +// String returns the string representation of the error. +// Alias for Error to satisfy the stringer interface. +func (e unmarshalError) String() string { + return e.Error() +} + +// Bytes returns the bytes that failed to unmarshal. +func (e unmarshalError) Bytes() []byte { + return e.bytes +} + // An error list that satisfies the golang interface type errorList []error diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go index 894bbc7f8..83bbc311b 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go @@ -50,9 +50,10 @@ package credentials import ( "fmt" - "github.com/aws/aws-sdk-go/aws/awserr" "sync" "time" + + "github.com/aws/aws-sdk-go/aws/awserr" ) // AnonymousCredentials is an empty Credential object that can be used as diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go index 0ed791be6..43d4ed386 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go @@ -11,6 +11,7 @@ import ( "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/ec2metadata" + "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/internal/sdkuri" ) @@ -142,7 +143,8 @@ func requestCredList(client *ec2metadata.EC2Metadata) ([]string, error) { } if err := s.Err(); err != nil { - return nil, awserr.New("SerializationError", "failed to read EC2 instance role from metadata service", err) + return nil, awserr.New(request.ErrCodeSerialization, + "failed to read EC2 instance role from metadata service", err) } return credsList, nil @@ -164,7 +166,7 @@ func requestCred(client *ec2metadata.EC2Metadata, credsName string) (ec2RoleCred respCreds := ec2RoleCredRespBody{} if err := json.NewDecoder(strings.NewReader(resp)).Decode(&respCreds); err != nil { return ec2RoleCredRespBody{}, - awserr.New("SerializationError", + awserr.New(request.ErrCodeSerialization, fmt.Sprintf("failed to decode %s EC2 instance role credentials", credsName), err) } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go index ace513138..c2b2c5d65 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go @@ -39,6 +39,7 @@ import ( "github.com/aws/aws-sdk-go/aws/client/metadata" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil" ) // ProviderName is the name of the credentials provider. @@ -174,7 +175,7 @@ func unmarshalHandler(r *request.Request) { out := r.Data.(*getCredentialsOutput) if err := json.NewDecoder(r.HTTPResponse.Body).Decode(&out); err != nil { - r.Error = awserr.New("SerializationError", + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode endpoint credentials", err, ) @@ -185,11 +186,15 @@ func unmarshalError(r *request.Request) { defer r.HTTPResponse.Body.Close() var errOut errorOutput - if err := json.NewDecoder(r.HTTPResponse.Body).Decode(&errOut); err != nil { - r.Error = awserr.New("SerializationError", - "failed to decode endpoint credentials", - err, + err := jsonutil.UnmarshalJSONError(&errOut, r.HTTPResponse.Body) + if err != nil { + r.Error = awserr.NewRequestFailure( + awserr.New(request.ErrCodeSerialization, + "failed to decode error message", err), + r.HTTPResponse.StatusCode, + r.RequestID, ) + return } // Response body format is not consistent between metadata endpoints. diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go index 0d1b55047..2e528d130 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/assume_role_provider.go @@ -87,6 +87,7 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/internal/sdkrand" "github.com/aws/aws-sdk-go/service/sts" ) @@ -194,6 +195,18 @@ type AssumeRoleProvider struct { // // If ExpiryWindow is 0 or less it will be ignored. ExpiryWindow time.Duration + + // MaxJitterFrac reduces the effective Duration of each credential requested + // by a random percentage between 0 and MaxJitterFraction. MaxJitterFrac must + // have a value between 0 and 1. Any other value may lead to expected behavior. + // With a MaxJitterFrac value of 0, default) will no jitter will be used. + // + // For example, with a Duration of 30m and a MaxJitterFrac of 0.1, the + // AssumeRole call will be made with an arbitrary Duration between 27m and + // 30m. + // + // MaxJitterFrac should not be negative. + MaxJitterFrac float64 } // NewCredentials returns a pointer to a new Credentials object wrapping the @@ -245,7 +258,6 @@ func NewCredentialsWithClient(svc AssumeRoler, roleARN string, options ...func(* // Retrieve generates a new set of temporary credentials using STS. func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { - // Apply defaults where parameters are not set. if p.RoleSessionName == "" { // Try to work out a role name that will hopefully end up unique. @@ -255,8 +267,9 @@ func (p *AssumeRoleProvider) Retrieve() (credentials.Value, error) { // Expire as often as AWS permits. p.Duration = DefaultDuration } + jitter := time.Duration(sdkrand.SeededRand.Float64() * p.MaxJitterFrac * float64(p.Duration)) input := &sts.AssumeRoleInput{ - DurationSeconds: aws.Int64(int64(p.Duration / time.Second)), + DurationSeconds: aws.Int64(int64((p.Duration - jitter) / time.Second)), RoleArn: aws.String(p.RoleARN), RoleSessionName: aws.String(p.RoleSessionName), ExternalId: p.ExternalID, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go index 0b5571acf..d9aa5b062 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go @@ -96,7 +96,7 @@ func getMetricException(err awserr.Error) metricException { switch code { case "RequestError", - "SerializationError", + request.ErrCodeSerialization, request.CanceledErrorCode: return sdkException{ requestException{exception: code, message: msg}, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go index d57a1af59..2c8d5f56d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go @@ -82,7 +82,7 @@ func (c *EC2Metadata) GetInstanceIdentityDocument() (EC2InstanceIdentityDocument doc := EC2InstanceIdentityDocument{} if err := json.NewDecoder(strings.NewReader(resp)).Decode(&doc); err != nil { return EC2InstanceIdentityDocument{}, - awserr.New("SerializationError", + awserr.New(request.ErrCodeSerialization, "failed to decode EC2 instance identity document", err) } @@ -101,7 +101,7 @@ func (c *EC2Metadata) IAMInfo() (EC2IAMInfo, error) { info := EC2IAMInfo{} if err := json.NewDecoder(strings.NewReader(resp)).Decode(&info); err != nil { return EC2IAMInfo{}, - awserr.New("SerializationError", + awserr.New(request.ErrCodeSerialization, "failed to decode EC2 IAM info", err) } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go index f4438eae9..f0c1d31e7 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go @@ -123,7 +123,7 @@ func unmarshalHandler(r *request.Request) { defer r.HTTPResponse.Body.Close() b := &bytes.Buffer{} if _, err := io.Copy(b, r.HTTPResponse.Body); err != nil { - r.Error = awserr.New("SerializationError", "unable to unmarshal EC2 metadata respose", err) + r.Error = awserr.New(request.ErrCodeSerialization, "unable to unmarshal EC2 metadata respose", err) return } @@ -136,7 +136,7 @@ func unmarshalError(r *request.Request) { defer r.HTTPResponse.Body.Close() b := &bytes.Buffer{} if _, err := io.Copy(b, r.HTTPResponse.Body); err != nil { - r.Error = awserr.New("SerializationError", "unable to unmarshal EC2 metadata error respose", err) + r.Error = awserr.New(request.ErrCodeSerialization, "unable to unmarshal EC2 metadata error respose", err) return } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index d020c66c2..6a988a4aa 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -15,6 +15,7 @@ const ( // AWS Standard partition's regions. const ( + ApEast1RegionID = "ap-east-1" // Asia Pacific (Hong Kong). ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo). ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul). ApSouth1RegionID = "ap-south-1" // Asia Pacific (Mumbai). @@ -91,6 +92,9 @@ var awsPartition = partition{ SignatureVersions: []string{"v4"}, }, Regions: regions{ + "ap-east-1": region{ + Description: "Asia Pacific (Hong Kong)", + }, "ap-northeast-1": region{ Description: "Asia Pacific (Tokyo)", }, @@ -150,6 +154,7 @@ var awsPartition = partition{ "acm": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -174,20 +179,31 @@ var awsPartition = partition{ }, Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, "api.ecr": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{ + Hostname: "api.ecr.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, "ap-northeast-1": endpoint{ Hostname: "api.ecr.ap-northeast-1.amazonaws.com", CredentialScope: credentialScope{ @@ -353,6 +369,7 @@ var awsPartition = partition{ "apigateway": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -380,6 +397,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -398,6 +416,24 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "appmesh": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "appstream2": service{ Defaults: endpoint{ Protocols: []string{"https"}, @@ -454,6 +490,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -496,6 +533,17 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "backup": service{ + + Endpoints: endpoints{ + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "batch": service{ Endpoints: endpoints{ @@ -563,7 +611,9 @@ var awsPartition = partition{ "cloud9": service{ Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-southeast-1": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -587,6 +637,7 @@ var awsPartition = partition{ "cloudformation": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -641,6 +692,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -676,6 +728,7 @@ var awsPartition = partition{ "cloudtrail": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -704,6 +757,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -767,6 +821,7 @@ var awsPartition = partition{ "codedeploy": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -915,15 +970,19 @@ var awsPartition = partition{ "comprehendmedical": service{ Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "config": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -948,6 +1007,19 @@ var awsPartition = partition{ "us-east-1": endpoint{}, }, }, + "data.mediastore": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "datapipeline": service{ Endpoints: endpoints{ @@ -1025,6 +1097,7 @@ var awsPartition = partition{ "dms": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1046,6 +1119,24 @@ var awsPartition = partition{ "docdb": service{ Endpoints: endpoints{ + "ap-northeast-1": endpoint{ + Hostname: "rds.ap-northeast-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-1", + }, + }, + "ap-northeast-2": endpoint{ + Hostname: "rds.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, + "ap-southeast-2": endpoint{ + Hostname: "rds.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, "eu-central-1": endpoint{ Hostname: "rds.eu-central-1.amazonaws.com", CredentialScope: credentialScope{ @@ -1088,6 +1179,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, @@ -1102,17 +1194,24 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, + "ca-central-1-fips": endpoint{ + Hostname: "dynamodb-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "local": endpoint{ Hostname: "localhost:8000", Protocols: []string{"http"}, @@ -1122,9 +1221,33 @@ var awsPartition = partition{ }, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, + "us-east-1-fips": endpoint{ + Hostname: "dynamodb-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "dynamodb-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, "us-west-1": endpoint{}, + "us-west-1-fips": endpoint{ + Hostname: "dynamodb-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "dynamodb-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "ec2": service{ @@ -1132,6 +1255,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1164,6 +1288,7 @@ var awsPartition = partition{ "ecs": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1185,6 +1310,7 @@ var awsPartition = partition{ "elasticache": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1212,6 +1338,7 @@ var awsPartition = partition{ "elasticbeanstalk": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1235,11 +1362,14 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1251,6 +1381,7 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1275,6 +1406,7 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1313,9 +1445,12 @@ var awsPartition = partition{ "email": service{ Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "entitlement.marketplace": service{ @@ -1331,6 +1466,7 @@ var awsPartition = partition{ "es": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1358,6 +1494,7 @@ var awsPartition = partition{ "events": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1386,6 +1523,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1402,11 +1540,15 @@ var awsPartition = partition{ }, Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -1414,6 +1556,8 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1444,6 +1588,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1465,6 +1610,7 @@ var awsPartition = partition{ "glue": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1495,6 +1641,13 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "groundstation": service{ + + Endpoints: endpoints{ + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "guardduty": service{ IsRegionalized: boxedTrue, Defaults: endpoint{ @@ -1508,6 +1661,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1561,6 +1715,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1598,9 +1753,39 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "iotthingsgraph": service{ + Defaults: endpoint{ + CredentialScope: credentialScope{ + Service: "iotthingsgraph", + }, + }, + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "kafka": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "kinesis": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1622,11 +1807,16 @@ var awsPartition = partition{ "kinesisanalytics": service{ Endpoints: endpoints{ - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "kinesisvideo": service{ @@ -1643,12 +1833,7 @@ var awsPartition = partition{ "kms": service{ Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - }, + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1670,6 +1855,7 @@ var awsPartition = partition{ "lambda": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1696,11 +1882,16 @@ var awsPartition = partition{ "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -1725,6 +1916,7 @@ var awsPartition = partition{ "logs": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1804,6 +1996,7 @@ var awsPartition = partition{ "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, @@ -1834,6 +2027,7 @@ var awsPartition = partition{ "ap-northeast-2": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-west-2": endpoint{}, @@ -1846,6 +2040,7 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1893,6 +2088,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1916,11 +2112,14 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1946,6 +2145,12 @@ var awsPartition = partition{ Region: "ap-northeast-1", }, }, + "ap-northeast-2": endpoint{ + Hostname: "rds.ap-northeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-northeast-2", + }, + }, "ap-south-1": endpoint{ Hostname: "rds.ap-south-1.amazonaws.com", CredentialScope: credentialScope{ @@ -2056,10 +2261,12 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ - "eu-central-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "polly": service{ @@ -2083,9 +2290,41 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "projects.iot1click": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, + "ram": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "rds": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2109,6 +2348,7 @@ var awsPartition = partition{ "redshift": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2133,16 +2373,21 @@ var awsPartition = partition{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, "resource-groups": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2164,9 +2409,10 @@ var awsPartition = partition{ "robomaker": service{ Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "route53": service{ @@ -2234,9 +2480,33 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-1-fips": endpoint{ + Hostname: "runtime-fips.sagemaker.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "runtime-fips.sagemaker.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "us-west-1": endpoint{}, + "us-west-1-fips": endpoint{ + Hostname: "runtime-fips.sagemaker.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "runtime-fips.sagemaker.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "s3": service{ @@ -2250,6 +2520,7 @@ var awsPartition = partition{ DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}", }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{ Hostname: "s3.ap-northeast-1.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, @@ -2478,6 +2749,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2522,6 +2794,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2558,6 +2831,9 @@ var awsPartition = partition{ "eu-central-1": endpoint{ Protocols: []string{"https"}, }, + "eu-north-1": endpoint{ + Protocols: []string{"https"}, + }, "eu-west-1": endpoint{ Protocols: []string{"https"}, }, @@ -2669,6 +2945,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2703,6 +2980,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2727,6 +3005,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2774,6 +3053,7 @@ var awsPartition = partition{ "ssm": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2795,6 +3075,7 @@ var awsPartition = partition{ "states": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2848,11 +3129,17 @@ var awsPartition = partition{ "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, - "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, - "eu-west-1": endpoint{}, - "eu-west-2": endpoint{}, - "eu-west-3": endpoint{}, + "ca-central-1-fips": endpoint{ + Hostname: "dynamodb-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, + "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "local": endpoint{ Hostname: "localhost:8000", Protocols: []string{"http"}, @@ -2862,9 +3149,33 @@ var awsPartition = partition{ }, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, + "us-east-1-fips": endpoint{ + Hostname: "dynamodb-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, "us-east-2": endpoint{}, + "us-east-2-fips": endpoint{ + Hostname: "dynamodb-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, "us-west-1": endpoint{}, + "us-west-1-fips": endpoint{ + Hostname: "dynamodb-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, "us-west-2": endpoint{}, + "us-west-2-fips": endpoint{ + Hostname: "dynamodb-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, }, }, "sts": service{ @@ -2876,6 +3187,12 @@ var awsPartition = partition{ }, }, Endpoints: endpoints{ + "ap-east-1": endpoint{ + Hostname: "sts.ap-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-east-1", + }, + }, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{ Hostname: "sts.ap-northeast-2.amazonaws.com", @@ -2927,12 +3244,13 @@ var awsPartition = partition{ "support": service{ Endpoints: endpoints{ - "us-east-1": endpoint{}, + "aws-global": endpoint{}, }, }, "swf": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2954,6 +3272,7 @@ var awsPartition = partition{ "tagging": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -2996,8 +3315,14 @@ var awsPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, + "ap-northeast-1": endpoint{}, + "ap-northeast-2": endpoint{}, + "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, "us-east-1-fips": endpoint{ Hostname: "translate-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -3090,6 +3415,7 @@ var awsPartition = partition{ "xray": service{ Endpoints: endpoints{ + "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -3193,6 +3519,20 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "cloudfront": service{ + PartitionEndpoint: "aws-cn-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-cn-global": endpoint{ + Hostname: "cloudfront.cn-northwest-1.amazonaws.com.cn", + Protocols: []string{"http", "https"}, + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, "cloudtrail": service{ Endpoints: endpoints{ @@ -3382,6 +3722,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "kms": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "lambda": service{ Endpoints: endpoints{ @@ -3396,6 +3743,17 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "mediaconvert": service{ + + Endpoints: endpoints{ + "cn-northwest-1": endpoint{ + Hostname: "subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-northwest-1", + }, + }, + }, + }, "monitoring": service{ Defaults: endpoint{ Protocols: []string{"http", "https"}, @@ -3528,6 +3886,12 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "support": service{ + + Endpoints: endpoints{ + "aws-cn-global": endpoint{}, + }, + }, "swf": service{ Endpoints: endpoints{ @@ -3581,6 +3945,15 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "acm-pca": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "api.ecr": service{ Endpoints: endpoints{ @@ -3626,6 +3999,7 @@ var awsusgovPartition = partition{ "athena": service{ Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, @@ -3675,6 +4049,19 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "codebuild": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, + "codecommit": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "codedeploy": service{ Endpoints: endpoints{ @@ -3709,6 +4096,12 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "datasync": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, "directconnect": service{ Endpoints: endpoints{ @@ -3726,6 +4119,7 @@ var awsusgovPartition = partition{ "ds": service{ Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, @@ -3733,6 +4127,12 @@ var awsusgovPartition = partition{ Endpoints: endpoints{ "us-gov-east-1": endpoint{}, + "us-gov-east-1-fips": endpoint{ + Hostname: "dynamodb.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{}, "us-gov-west-1-fips": endpoint{ Hostname: "dynamodb.us-gov-west-1.amazonaws.com", @@ -3918,6 +4318,13 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "license-manager": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "logs": service{ Endpoints: endpoints{ @@ -3948,6 +4355,19 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "organizations": service{ + PartitionEndpoint: "aws-us-gov-global", + IsRegionalized: boxedFalse, + + Endpoints: endpoints{ + "aws-us-gov-global": endpoint{ + Hostname: "organizations.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "polly": service{ Endpoints: endpoints{ @@ -4037,6 +4457,28 @@ var awsusgovPartition = partition{ }, }, }, + "secretsmanager": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + "us-gov-west-1-fips": endpoint{ + Hostname: "secretsmanager-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, + "serverlessrepo": service{ + Defaults: endpoint{ + Protocols: []string{"https"}, + }, + Endpoints: endpoints{ + "us-gov-west-1": endpoint{ + Protocols: []string{"https"}, + }, + }, + }, "sms": service{ Endpoints: endpoints{ @@ -4098,6 +4540,12 @@ var awsusgovPartition = partition{ }, Endpoints: endpoints{ "us-gov-east-1": endpoint{}, + "us-gov-east-1-fips": endpoint{ + Hostname: "dynamodb.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, "us-gov-west-1": endpoint{}, "us-gov-west-1-fips": endpoint{ Hostname: "dynamodb.us-gov-west-1.amazonaws.com", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go index 000dd79ee..ca8fc828e 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go @@ -2,7 +2,7 @@ package endpoints // Service identifiers // -// Deprecated: Use client package's EndpointID value instead of these +// Deprecated: Use client package's EndpointsID value instead of these // ServiceIDs. These IDs are not maintained, and are out of date. const ( A4bServiceID = "a4b" // A4b. diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go b/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go index 271da432c..d9b37f4d3 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error.go @@ -1,18 +1,17 @@ -// +build !appengine,!plan9 - package request import ( - "net" - "os" - "syscall" + "strings" ) func isErrConnectionReset(err error) bool { - if opErr, ok := err.(*net.OpError); ok { - if sysErr, ok := opErr.Err.(*os.SyscallError); ok { - return sysErr.Err == syscall.ECONNRESET - } + if strings.Contains(err.Error(), "read: connection reset") { + return false + } + + if strings.Contains(err.Error(), "connection reset") || + strings.Contains(err.Error(), "broken pipe") { + return true } return false diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error_other.go b/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error_other.go deleted file mode 100644 index daf9eca43..000000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/connection_reset_error_other.go +++ /dev/null @@ -1,11 +0,0 @@ -// +build appengine plan9 - -package request - -import ( - "strings" -) - -func isErrConnectionReset(err error) bool { - return strings.Contains(err.Error(), "connection reset") -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go index 8ef8548a9..627ec722c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go @@ -59,6 +59,51 @@ func (h *Handlers) Clear() { h.Complete.Clear() } +// IsEmpty returns if there are no handlers in any of the handlerlists. +func (h *Handlers) IsEmpty() bool { + if h.Validate.Len() != 0 { + return false + } + if h.Build.Len() != 0 { + return false + } + if h.Send.Len() != 0 { + return false + } + if h.Sign.Len() != 0 { + return false + } + if h.Unmarshal.Len() != 0 { + return false + } + if h.UnmarshalStream.Len() != 0 { + return false + } + if h.UnmarshalMeta.Len() != 0 { + return false + } + if h.UnmarshalError.Len() != 0 { + return false + } + if h.ValidateResponse.Len() != 0 { + return false + } + if h.Retry.Len() != 0 { + return false + } + if h.AfterRetry.Len() != 0 { + return false + } + if h.CompleteAttempt.Len() != 0 { + return false + } + if h.Complete.Len() != 0 { + return false + } + + return true +} + // A HandlerListRunItem represents an entry in the HandlerList which // is being run. type HandlerListRunItem struct { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go index 8f2eb3e43..0c46b7d2c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go @@ -231,6 +231,10 @@ func (r *Request) WillRetry() bool { return r.Error != nil && aws.BoolValue(r.Retryable) && r.RetryCount < r.MaxRetries() } +func fmtAttemptCount(retryCount, maxRetries int) string { + return fmt.Sprintf("attempt %v/%v", retryCount, maxRetries) +} + // ParamsFilled returns if the request's parameters have been populated // and the parameters are valid. False is returned if no parameters are // provided or invalid. @@ -330,16 +334,17 @@ func getPresignedURL(r *Request, expire time.Duration) (string, http.Header, err return r.HTTPRequest.URL.String(), r.SignedHeaderVals, nil } -func debugLogReqError(r *Request, stage string, retrying bool, err error) { +const ( + willRetry = "will retry" + notRetrying = "not retrying" + retryCount = "retry %v/%v" +) + +func debugLogReqError(r *Request, stage, retryStr string, err error) { if !r.Config.LogLevel.Matches(aws.LogDebugWithRequestErrors) { return } - retryStr := "not retrying" - if retrying { - retryStr = "will retry" - } - r.Config.Logger.Log(fmt.Sprintf("DEBUG: %s %s/%s failed, %s, error %v", stage, r.ClientInfo.ServiceName, r.Operation.Name, retryStr, err)) } @@ -358,12 +363,12 @@ func (r *Request) Build() error { if !r.built { r.Handlers.Validate.Run(r) if r.Error != nil { - debugLogReqError(r, "Validate Request", false, r.Error) + debugLogReqError(r, "Validate Request", notRetrying, r.Error) return r.Error } r.Handlers.Build.Run(r) if r.Error != nil { - debugLogReqError(r, "Build Request", false, r.Error) + debugLogReqError(r, "Build Request", notRetrying, r.Error) return r.Error } r.built = true @@ -379,7 +384,7 @@ func (r *Request) Build() error { func (r *Request) Sign() error { r.Build() if r.Error != nil { - debugLogReqError(r, "Build Request", false, r.Error) + debugLogReqError(r, "Build Request", notRetrying, r.Error) return r.Error } @@ -473,7 +478,7 @@ func (r *Request) Send() error { r.AttemptTime = time.Now() if err := r.Sign(); err != nil { - debugLogReqError(r, "Sign Request", false, err) + debugLogReqError(r, "Sign Request", notRetrying, err) return err } @@ -520,7 +525,9 @@ func (r *Request) sendRequest() (sendErr error) { r.Retryable = nil r.Handlers.Send.Run(r) if r.Error != nil { - debugLogReqError(r, "Send Request", r.WillRetry(), r.Error) + debugLogReqError(r, "Send Request", + fmtAttemptCount(r.RetryCount, r.MaxRetries()), + r.Error) return r.Error } @@ -528,13 +535,17 @@ func (r *Request) sendRequest() (sendErr error) { r.Handlers.ValidateResponse.Run(r) if r.Error != nil { r.Handlers.UnmarshalError.Run(r) - debugLogReqError(r, "Validate Response", r.WillRetry(), r.Error) + debugLogReqError(r, "Validate Response", + fmtAttemptCount(r.RetryCount, r.MaxRetries()), + r.Error) return r.Error } r.Handlers.Unmarshal.Run(r) if r.Error != nil { - debugLogReqError(r, "Unmarshal Response", r.WillRetry(), r.Error) + debugLogReqError(r, "Unmarshal Response", + fmtAttemptCount(r.RetryCount, r.MaxRetries()), + r.Error) return r.Error } @@ -565,8 +576,8 @@ type temporary interface { Temporary() bool } -func shouldRetryCancel(err error) bool { - switch err := err.(type) { +func shouldRetryCancel(origErr error) bool { + switch err := origErr.(type) { case awserr.Error: if err.Code() == CanceledErrorCode { return false @@ -585,10 +596,10 @@ func shouldRetryCancel(err error) bool { case temporary: // If the error is temporary, we want to allow continuation of the // retry process - return err.Temporary() + return err.Temporary() || isErrConnectionReset(origErr) case nil: // `awserr.Error.OrigErr()` can be nil, meaning there was an error but - // because we don't know the cause, it is marked as retriable. See + // because we don't know the cause, it is marked as retryable. See // TestRequest4xxUnretryable for an example. return true default: diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go new file mode 100644 index 000000000..0c9dcf7c8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go @@ -0,0 +1,203 @@ +package session + +import ( + "fmt" + "os" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/credentials/processcreds" + "github.com/aws/aws-sdk-go/aws/credentials/stscreds" + "github.com/aws/aws-sdk-go/aws/defaults" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/shareddefaults" +) + +// valid credential source values +const ( + credSourceEc2Metadata = "Ec2InstanceMetadata" + credSourceEnvironment = "Environment" + credSourceECSContainer = "EcsContainer" +) + +func resolveCredentials(cfg *aws.Config, + envCfg envConfig, sharedCfg sharedConfig, + handlers request.Handlers, + sessOpts Options, +) (*credentials.Credentials, error) { + // Credentials from Assume Role with specific credentials source. + if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.CredentialSource) > 0 { + return resolveCredsFromSource(cfg, envCfg, sharedCfg, handlers, sessOpts) + } + + // Credentials from environment variables + if len(envCfg.Creds.AccessKeyID) > 0 { + return credentials.NewStaticCredentialsFromCreds(envCfg.Creds), nil + } + + // Fallback to the "default" credential resolution chain. + return resolveCredsFromProfile(cfg, envCfg, sharedCfg, handlers, sessOpts) +} + +func resolveCredsFromProfile(cfg *aws.Config, + envCfg envConfig, sharedCfg sharedConfig, + handlers request.Handlers, + sessOpts Options, +) (*credentials.Credentials, error) { + + if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.RoleARN) > 0 && sharedCfg.AssumeRoleSource != nil { + // Assume IAM role with credentials source from a different profile. + cred, err := resolveCredsFromProfile(cfg, envCfg, *sharedCfg.AssumeRoleSource, handlers, sessOpts) + if err != nil { + return nil, err + } + + cfgCp := *cfg + cfgCp.Credentials = cred + return credsFromAssumeRole(cfgCp, handlers, sharedCfg, sessOpts) + + } else if len(sharedCfg.Creds.AccessKeyID) > 0 { + // Static Credentials from Shared Config/Credentials file. + return credentials.NewStaticCredentialsFromCreds( + sharedCfg.Creds, + ), nil + + } else if len(sharedCfg.CredentialProcess) > 0 { + // Credential Process credentials from Shared Config/Credentials file. + return processcreds.NewCredentials( + sharedCfg.CredentialProcess, + ), nil + + } else if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.CredentialSource) > 0 { + // Assume IAM Role with specific credential source. + return resolveCredsFromSource(cfg, envCfg, sharedCfg, handlers, sessOpts) + } + + // Fallback to default credentials provider, include mock errors + // for the credential chain so user can identify why credentials + // failed to be retrieved. + return credentials.NewCredentials(&credentials.ChainProvider{ + VerboseErrors: aws.BoolValue(cfg.CredentialsChainVerboseErrors), + Providers: []credentials.Provider{ + &credProviderError{ + Err: awserr.New("EnvAccessKeyNotFound", + "failed to find credentials in the environment.", nil), + }, + &credProviderError{ + Err: awserr.New("SharedCredsLoad", + fmt.Sprintf("failed to load profile, %s.", envCfg.Profile), nil), + }, + defaults.RemoteCredProvider(*cfg, handlers), + }, + }), nil +} + +func resolveCredsFromSource(cfg *aws.Config, + envCfg envConfig, sharedCfg sharedConfig, + handlers request.Handlers, + sessOpts Options, +) (*credentials.Credentials, error) { + // if both credential_source and source_profile have been set, return an + // error as this is undefined behavior. Only one can be used at a time + // within a profile. + if len(sharedCfg.AssumeRole.SourceProfile) > 0 { + return nil, ErrSharedConfigSourceCollision + } + + cfgCp := *cfg + switch sharedCfg.AssumeRole.CredentialSource { + case credSourceEc2Metadata: + p := defaults.RemoteCredProvider(cfgCp, handlers) + cfgCp.Credentials = credentials.NewCredentials(p) + + case credSourceEnvironment: + cfgCp.Credentials = credentials.NewStaticCredentialsFromCreds(envCfg.Creds) + + case credSourceECSContainer: + if len(os.Getenv(shareddefaults.ECSCredsProviderEnvVar)) == 0 { + return nil, ErrSharedConfigECSContainerEnvVarEmpty + } + + p := defaults.RemoteCredProvider(cfgCp, handlers) + cfgCp.Credentials = credentials.NewCredentials(p) + + default: + return nil, ErrSharedConfigInvalidCredSource + } + + return credsFromAssumeRole(cfgCp, handlers, sharedCfg, sessOpts) +} + +func credsFromAssumeRole(cfg aws.Config, + handlers request.Handlers, + sharedCfg sharedConfig, + sessOpts Options, +) (*credentials.Credentials, error) { + if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil { + // AssumeRole Token provider is required if doing Assume Role + // with MFA. + return nil, AssumeRoleTokenProviderNotSetError{} + } + + return stscreds.NewCredentials( + &Session{ + Config: &cfg, + Handlers: handlers.Copy(), + }, + sharedCfg.AssumeRole.RoleARN, + func(opt *stscreds.AssumeRoleProvider) { + opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName + opt.Duration = sessOpts.AssumeRoleDuration + + // Assume role with external ID + if len(sharedCfg.AssumeRole.ExternalID) > 0 { + opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID) + } + + // Assume role with MFA + if len(sharedCfg.AssumeRole.MFASerial) > 0 { + opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial) + opt.TokenProvider = sessOpts.AssumeRoleTokenProvider + } + }, + ), nil +} + +// AssumeRoleTokenProviderNotSetError is an error returned when creating a session when the +// MFAToken option is not set when shared config is configured load assume a +// role with an MFA token. +type AssumeRoleTokenProviderNotSetError struct{} + +// Code is the short id of the error. +func (e AssumeRoleTokenProviderNotSetError) Code() string { + return "AssumeRoleTokenProviderNotSetError" +} + +// Message is the description of the error +func (e AssumeRoleTokenProviderNotSetError) Message() string { + return fmt.Sprintf("assume role with MFA enabled, but AssumeRoleTokenProvider session option not set.") +} + +// OrigErr is the underlying error that caused the failure. +func (e AssumeRoleTokenProviderNotSetError) OrigErr() error { + return nil +} + +// Error satisfies the error interface. +func (e AssumeRoleTokenProviderNotSetError) Error() string { + return awserr.SprintError(e.Code(), e.Message(), "", nil) +} + +type credProviderError struct { + Err error +} + +var emptyCreds = credentials.Value{} + +func (c credProviderError) Retrieve() (credentials.Value, error) { + return credentials.Value{}, c.Err +} +func (c credProviderError) IsExpired() bool { + return true +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go index be4b5f077..84b01f0e7 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go @@ -3,24 +3,21 @@ package session import ( "crypto/tls" "crypto/x509" - "fmt" "io" "io/ioutil" "net/http" "os" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/corehandlers" "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/credentials/processcreds" - "github.com/aws/aws-sdk-go/aws/credentials/stscreds" "github.com/aws/aws-sdk-go/aws/csm" "github.com/aws/aws-sdk-go/aws/defaults" "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/shareddefaults" ) const ( @@ -210,6 +207,12 @@ type Options struct { // the config enables assume role wit MFA via the mfa_serial field. AssumeRoleTokenProvider func() (string, error) + // When the SDK's shared config is configured to assume a role this option + // may be provided to set the expiry duration of the STS credentials. + // Defaults to 15 minutes if not set as documented in the + // stscreds.AssumeRoleProvider. + AssumeRoleDuration time.Duration + // Reader for a custom Credentials Authority (CA) bundle in PEM format that // the SDK will use instead of the default system's root CA bundle. Use this // only if you want to replace the CA bundle the SDK uses for TLS requests. @@ -224,6 +227,12 @@ type Options struct { // to also enable this feature. CustomCABundle session option field has priority // over the AWS_CA_BUNDLE environment variable, and will be used if both are set. CustomCABundle io.Reader + + // The handlers that the session and all API clients will be created with. + // This must be a complete set of handlers. Use the defaults.Handlers() + // function to initialize this value before changing the handlers to be + // used by the SDK. + Handlers request.Handlers } // NewSessionWithOptions returns a new Session created from SDK defaults, config files, @@ -344,7 +353,11 @@ func enableCSM(handlers *request.Handlers, clientID string, port string, logger func newSession(opts Options, envCfg envConfig, cfgs ...*aws.Config) (*Session, error) { cfg := defaults.Config() - handlers := defaults.Handlers() + + handlers := opts.Handlers + if handlers.IsEmpty() { + handlers = defaults.Handlers() + } // Get a merged version of the user provided config to determine if // credentials were. @@ -443,7 +456,11 @@ func loadCertPool(r io.Reader) (*x509.CertPool, error) { return p, nil } -func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg sharedConfig, handlers request.Handlers, sessOpts Options) error { +func mergeConfigSrcs(cfg, userCfg *aws.Config, + envCfg envConfig, sharedCfg sharedConfig, + handlers request.Handlers, + sessOpts Options, +) error { // Merge in user provided configuration cfg.MergeIn(userCfg) @@ -464,164 +481,19 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share } } - // Configure credentials if not already set + // Configure credentials if not already set by the user when creating the + // Session. if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil { - - // inspect the profile to see if a credential source has been specified. - if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.CredentialSource) > 0 { - - // if both credential_source and source_profile have been set, return an error - // as this is undefined behavior. - if len(sharedCfg.AssumeRole.SourceProfile) > 0 { - return ErrSharedConfigSourceCollision - } - - // valid credential source values - const ( - credSourceEc2Metadata = "Ec2InstanceMetadata" - credSourceEnvironment = "Environment" - credSourceECSContainer = "EcsContainer" - ) - - switch sharedCfg.AssumeRole.CredentialSource { - case credSourceEc2Metadata: - cfgCp := *cfg - p := defaults.RemoteCredProvider(cfgCp, handlers) - cfgCp.Credentials = credentials.NewCredentials(p) - - if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil { - // AssumeRole Token provider is required if doing Assume Role - // with MFA. - return AssumeRoleTokenProviderNotSetError{} - } - - cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts) - case credSourceEnvironment: - cfg.Credentials = credentials.NewStaticCredentialsFromCreds( - envCfg.Creds, - ) - case credSourceECSContainer: - if len(os.Getenv(shareddefaults.ECSCredsProviderEnvVar)) == 0 { - return ErrSharedConfigECSContainerEnvVarEmpty - } - - cfgCp := *cfg - p := defaults.RemoteCredProvider(cfgCp, handlers) - creds := credentials.NewCredentials(p) - - cfg.Credentials = creds - default: - return ErrSharedConfigInvalidCredSource - } - - return nil - } - - if len(envCfg.Creds.AccessKeyID) > 0 { - cfg.Credentials = credentials.NewStaticCredentialsFromCreds( - envCfg.Creds, - ) - } else if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.RoleARN) > 0 && sharedCfg.AssumeRoleSource != nil { - cfgCp := *cfg - cfgCp.Credentials = credentials.NewStaticCredentialsFromCreds( - sharedCfg.AssumeRoleSource.Creds, - ) - - if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil { - // AssumeRole Token provider is required if doing Assume Role - // with MFA. - return AssumeRoleTokenProviderNotSetError{} - } - - cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts) - } else if len(sharedCfg.Creds.AccessKeyID) > 0 { - cfg.Credentials = credentials.NewStaticCredentialsFromCreds( - sharedCfg.Creds, - ) - } else if len(sharedCfg.CredentialProcess) > 0 { - cfg.Credentials = processcreds.NewCredentials( - sharedCfg.CredentialProcess, - ) - } else { - // Fallback to default credentials provider, include mock errors - // for the credential chain so user can identify why credentials - // failed to be retrieved. - cfg.Credentials = credentials.NewCredentials(&credentials.ChainProvider{ - VerboseErrors: aws.BoolValue(cfg.CredentialsChainVerboseErrors), - Providers: []credentials.Provider{ - &credProviderError{Err: awserr.New("EnvAccessKeyNotFound", "failed to find credentials in the environment.", nil)}, - &credProviderError{Err: awserr.New("SharedCredsLoad", fmt.Sprintf("failed to load profile, %s.", envCfg.Profile), nil)}, - defaults.RemoteCredProvider(*cfg, handlers), - }, - }) + creds, err := resolveCredentials(cfg, envCfg, sharedCfg, handlers, sessOpts) + if err != nil { + return err } + cfg.Credentials = creds } return nil } -func assumeRoleCredentials(cfg aws.Config, handlers request.Handlers, sharedCfg sharedConfig, sessOpts Options) *credentials.Credentials { - return stscreds.NewCredentials( - &Session{ - Config: &cfg, - Handlers: handlers.Copy(), - }, - sharedCfg.AssumeRole.RoleARN, - func(opt *stscreds.AssumeRoleProvider) { - opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName - - // Assume role with external ID - if len(sharedCfg.AssumeRole.ExternalID) > 0 { - opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID) - } - - // Assume role with MFA - if len(sharedCfg.AssumeRole.MFASerial) > 0 { - opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial) - opt.TokenProvider = sessOpts.AssumeRoleTokenProvider - } - }, - ) -} - -// AssumeRoleTokenProviderNotSetError is an error returned when creating a session when the -// MFAToken option is not set when shared config is configured load assume a -// role with an MFA token. -type AssumeRoleTokenProviderNotSetError struct{} - -// Code is the short id of the error. -func (e AssumeRoleTokenProviderNotSetError) Code() string { - return "AssumeRoleTokenProviderNotSetError" -} - -// Message is the description of the error -func (e AssumeRoleTokenProviderNotSetError) Message() string { - return fmt.Sprintf("assume role with MFA enabled, but AssumeRoleTokenProvider session option not set.") -} - -// OrigErr is the underlying error that caused the failure. -func (e AssumeRoleTokenProviderNotSetError) OrigErr() error { - return nil -} - -// Error satisfies the error interface. -func (e AssumeRoleTokenProviderNotSetError) Error() string { - return awserr.SprintError(e.Code(), e.Message(), "", nil) -} - -type credProviderError struct { - Err error -} - -var emptyCreds = credentials.Value{} - -func (c credProviderError) Retrieve() (credentials.Value, error) { - return credentials.Value{}, c.Err -} -func (c credProviderError) IsExpired() bool { - return true -} - func initHandlers(s *Session) { // Add the Validate parameter handler if it is not disabled. s.Handlers.Validate.Remove(corehandlers.ValidateParametersHandler) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go index 7cb44021b..e0102363d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go @@ -156,10 +156,20 @@ func (cfg *sharedConfig) setAssumeRoleSource(origProfile string, files []sharedC if err != nil { return err } + + // Chain if profile depends of other profiles + if len(assumeRoleSrc.AssumeRole.SourceProfile) > 0 { + err := assumeRoleSrc.setAssumeRoleSource(cfg.AssumeRole.SourceProfile, files) + if err != nil { + return err + } + } } - if len(assumeRoleSrc.Creds.AccessKeyID) == 0 { - return SharedConfigAssumeRoleError{RoleARN: cfg.AssumeRole.RoleARN} + if cfg.AssumeRole.SourceProfile == origProfile || len(assumeRoleSrc.AssumeRole.SourceProfile) == 0 { + if len(assumeRoleSrc.AssumeRole.CredentialSource) == 0 && len(assumeRoleSrc.Creds.AccessKeyID) == 0 { + return SharedConfigAssumeRoleError{RoleARN: cfg.AssumeRole.RoleARN} + } } cfg.AssumeRoleSource = &assumeRoleSrc diff --git a/vendor/github.com/aws/aws-sdk-go/aws/types.go b/vendor/github.com/aws/aws-sdk-go/aws/types.go index 8b6f23425..455091540 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/types.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/types.go @@ -7,13 +7,18 @@ import ( "github.com/aws/aws-sdk-go/internal/sdkio" ) -// ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser. Should -// only be used with an io.Reader that is also an io.Seeker. Doing so may -// cause request signature errors, or request body's not sent for GET, HEAD -// and DELETE HTTP methods. +// ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser. Allows the +// SDK to accept an io.Reader that is not also an io.Seeker for unsigned +// streaming payload API operations. // -// Deprecated: Should only be used with io.ReadSeeker. If using for -// S3 PutObject to stream content use s3manager.Uploader instead. +// A ReadSeekCloser wrapping an nonseekable io.Reader used in an API +// operation's input will prevent that operation being retried in the case of +// network errors, and cause operation requests to fail if the operation +// requires payload signing. +// +// Note: If using With S3 PutObject to stream an object upload The SDK's S3 +// Upload manager (s3manager.Uploader) provides support for streaming with the +// ability to retry network errors. func ReadSeekCloser(r io.Reader) ReaderSeekerCloser { return ReaderSeekerCloser{r} } @@ -43,7 +48,8 @@ func IsReaderSeekable(r io.Reader) bool { // Read reads from the reader up to size of p. The number of bytes read, and // error if it occurred will be returned. // -// If the reader is not an io.Reader zero bytes read, and nil error will be returned. +// If the reader is not an io.Reader zero bytes read, and nil error will be +// returned. // // Performs the same functionality as io.Reader Read func (r ReaderSeekerCloser) Read(p []byte) (int, error) { diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 1d96f9c0b..00efe6b9f 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.19.11" +const SDKVersion = "1.20.10" diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go index f99703372..e56dcee2f 100644 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go +++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go @@ -304,7 +304,9 @@ loop: stmt := newCommentStatement(tok) stack.Push(stmt) default: - return nil, NewParseError(fmt.Sprintf("invalid state with ASTKind %v and TokenType %v", k, tok)) + return nil, NewParseError( + fmt.Sprintf("invalid state with ASTKind %v and TokenType %v", + k, tok.Type())) } if len(tokens) > 0 { @@ -314,7 +316,7 @@ loop: // this occurs when a statement has not been completed if stack.top > 1 { - return nil, NewParseError(fmt.Sprintf("incomplete expression: %v", stack.container)) + return nil, NewParseError(fmt.Sprintf("incomplete ini expression")) } // returns a sublist which excludes the start symbol diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go new file mode 100644 index 000000000..864fb6704 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go @@ -0,0 +1,296 @@ +// Package jsonutil provides JSON serialization of AWS requests and responses. +package jsonutil + +import ( + "bytes" + "encoding/base64" + "encoding/json" + "fmt" + "math" + "reflect" + "sort" + "strconv" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/private/protocol" +) + +var timeType = reflect.ValueOf(time.Time{}).Type() +var byteSliceType = reflect.ValueOf([]byte{}).Type() + +// BuildJSON builds a JSON string for a given object v. +func BuildJSON(v interface{}) ([]byte, error) { + var buf bytes.Buffer + + err := buildAny(reflect.ValueOf(v), &buf, "") + return buf.Bytes(), err +} + +func buildAny(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { + origVal := value + value = reflect.Indirect(value) + if !value.IsValid() { + return nil + } + + vtype := value.Type() + + t := tag.Get("type") + if t == "" { + switch vtype.Kind() { + case reflect.Struct: + // also it can't be a time object + if value.Type() != timeType { + t = "structure" + } + case reflect.Slice: + // also it can't be a byte slice + if _, ok := value.Interface().([]byte); !ok { + t = "list" + } + case reflect.Map: + // cannot be a JSONValue map + if _, ok := value.Interface().(aws.JSONValue); !ok { + t = "map" + } + } + } + + switch t { + case "structure": + if field, ok := vtype.FieldByName("_"); ok { + tag = field.Tag + } + return buildStruct(value, buf, tag) + case "list": + return buildList(value, buf, tag) + case "map": + return buildMap(value, buf, tag) + default: + return buildScalar(origVal, buf, tag) + } +} + +func buildStruct(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { + if !value.IsValid() { + return nil + } + + // unwrap payloads + if payload := tag.Get("payload"); payload != "" { + field, _ := value.Type().FieldByName(payload) + tag = field.Tag + value = elemOf(value.FieldByName(payload)) + + if !value.IsValid() { + return nil + } + } + + buf.WriteByte('{') + + t := value.Type() + first := true + for i := 0; i < t.NumField(); i++ { + member := value.Field(i) + + // This allocates the most memory. + // Additionally, we cannot skip nil fields due to + // idempotency auto filling. + field := t.Field(i) + + if field.PkgPath != "" { + continue // ignore unexported fields + } + if field.Tag.Get("json") == "-" { + continue + } + if field.Tag.Get("location") != "" { + continue // ignore non-body elements + } + if field.Tag.Get("ignore") != "" { + continue + } + + if protocol.CanSetIdempotencyToken(member, field) { + token := protocol.GetIdempotencyToken() + member = reflect.ValueOf(&token) + } + + if (member.Kind() == reflect.Ptr || member.Kind() == reflect.Slice || member.Kind() == reflect.Map) && member.IsNil() { + continue // ignore unset fields + } + + if first { + first = false + } else { + buf.WriteByte(',') + } + + // figure out what this field is called + name := field.Name + if locName := field.Tag.Get("locationName"); locName != "" { + name = locName + } + + writeString(name, buf) + buf.WriteString(`:`) + + err := buildAny(member, buf, field.Tag) + if err != nil { + return err + } + + } + + buf.WriteString("}") + + return nil +} + +func buildList(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { + buf.WriteString("[") + + for i := 0; i < value.Len(); i++ { + buildAny(value.Index(i), buf, "") + + if i < value.Len()-1 { + buf.WriteString(",") + } + } + + buf.WriteString("]") + + return nil +} + +type sortedValues []reflect.Value + +func (sv sortedValues) Len() int { return len(sv) } +func (sv sortedValues) Swap(i, j int) { sv[i], sv[j] = sv[j], sv[i] } +func (sv sortedValues) Less(i, j int) bool { return sv[i].String() < sv[j].String() } + +func buildMap(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { + buf.WriteString("{") + + sv := sortedValues(value.MapKeys()) + sort.Sort(sv) + + for i, k := range sv { + if i > 0 { + buf.WriteByte(',') + } + + writeString(k.String(), buf) + buf.WriteString(`:`) + + buildAny(value.MapIndex(k), buf, "") + } + + buf.WriteString("}") + + return nil +} + +func buildScalar(v reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error { + // prevents allocation on the heap. + scratch := [64]byte{} + switch value := reflect.Indirect(v); value.Kind() { + case reflect.String: + writeString(value.String(), buf) + case reflect.Bool: + if value.Bool() { + buf.WriteString("true") + } else { + buf.WriteString("false") + } + case reflect.Int64: + buf.Write(strconv.AppendInt(scratch[:0], value.Int(), 10)) + case reflect.Float64: + f := value.Float() + if math.IsInf(f, 0) || math.IsNaN(f) { + return &json.UnsupportedValueError{Value: v, Str: strconv.FormatFloat(f, 'f', -1, 64)} + } + buf.Write(strconv.AppendFloat(scratch[:0], f, 'f', -1, 64)) + default: + switch converted := value.Interface().(type) { + case time.Time: + format := tag.Get("timestampFormat") + if len(format) == 0 { + format = protocol.UnixTimeFormatName + } + + ts := protocol.FormatTime(format, converted) + if format != protocol.UnixTimeFormatName { + ts = `"` + ts + `"` + } + + buf.WriteString(ts) + case []byte: + if !value.IsNil() { + buf.WriteByte('"') + if len(converted) < 1024 { + // for small buffers, using Encode directly is much faster. + dst := make([]byte, base64.StdEncoding.EncodedLen(len(converted))) + base64.StdEncoding.Encode(dst, converted) + buf.Write(dst) + } else { + // for large buffers, avoid unnecessary extra temporary + // buffer space. + enc := base64.NewEncoder(base64.StdEncoding, buf) + enc.Write(converted) + enc.Close() + } + buf.WriteByte('"') + } + case aws.JSONValue: + str, err := protocol.EncodeJSONValue(converted, protocol.QuotedEscape) + if err != nil { + return fmt.Errorf("unable to encode JSONValue, %v", err) + } + buf.WriteString(str) + default: + return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type()) + } + } + return nil +} + +var hex = "0123456789abcdef" + +func writeString(s string, buf *bytes.Buffer) { + buf.WriteByte('"') + for i := 0; i < len(s); i++ { + if s[i] == '"' { + buf.WriteString(`\"`) + } else if s[i] == '\\' { + buf.WriteString(`\\`) + } else if s[i] == '\b' { + buf.WriteString(`\b`) + } else if s[i] == '\f' { + buf.WriteString(`\f`) + } else if s[i] == '\r' { + buf.WriteString(`\r`) + } else if s[i] == '\t' { + buf.WriteString(`\t`) + } else if s[i] == '\n' { + buf.WriteString(`\n`) + } else if s[i] < 32 { + buf.WriteString("\\u00") + buf.WriteByte(hex[s[i]>>4]) + buf.WriteByte(hex[s[i]&0xF]) + } else { + buf.WriteByte(s[i]) + } + } + buf.WriteByte('"') +} + +// Returns the reflection element of a value, if it is a pointer. +func elemOf(value reflect.Value) reflect.Value { + for value.Kind() == reflect.Ptr { + value = value.Elem() + } + return value +} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go new file mode 100644 index 000000000..ea0da79a5 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go @@ -0,0 +1,250 @@ +package jsonutil + +import ( + "bytes" + "encoding/base64" + "encoding/json" + "fmt" + "io" + "reflect" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/private/protocol" +) + +// UnmarshalJSONError unmarshal's the reader's JSON document into the passed in +// type. The value to unmarshal the json document into must be a pointer to the +// type. +func UnmarshalJSONError(v interface{}, stream io.Reader) error { + var errBuf bytes.Buffer + body := io.TeeReader(stream, &errBuf) + + err := json.NewDecoder(body).Decode(v) + if err != nil { + msg := "failed decoding error message" + if err == io.EOF { + msg = "error message missing" + err = nil + } + return awserr.NewUnmarshalError(err, msg, errBuf.Bytes()) + } + + return nil +} + +// UnmarshalJSON reads a stream and unmarshals the results in object v. +func UnmarshalJSON(v interface{}, stream io.Reader) error { + var out interface{} + + err := json.NewDecoder(stream).Decode(&out) + if err == io.EOF { + return nil + } else if err != nil { + return err + } + + return unmarshalAny(reflect.ValueOf(v), out, "") +} + +func unmarshalAny(value reflect.Value, data interface{}, tag reflect.StructTag) error { + vtype := value.Type() + if vtype.Kind() == reflect.Ptr { + vtype = vtype.Elem() // check kind of actual element type + } + + t := tag.Get("type") + if t == "" { + switch vtype.Kind() { + case reflect.Struct: + // also it can't be a time object + if _, ok := value.Interface().(*time.Time); !ok { + t = "structure" + } + case reflect.Slice: + // also it can't be a byte slice + if _, ok := value.Interface().([]byte); !ok { + t = "list" + } + case reflect.Map: + // cannot be a JSONValue map + if _, ok := value.Interface().(aws.JSONValue); !ok { + t = "map" + } + } + } + + switch t { + case "structure": + if field, ok := vtype.FieldByName("_"); ok { + tag = field.Tag + } + return unmarshalStruct(value, data, tag) + case "list": + return unmarshalList(value, data, tag) + case "map": + return unmarshalMap(value, data, tag) + default: + return unmarshalScalar(value, data, tag) + } +} + +func unmarshalStruct(value reflect.Value, data interface{}, tag reflect.StructTag) error { + if data == nil { + return nil + } + mapData, ok := data.(map[string]interface{}) + if !ok { + return fmt.Errorf("JSON value is not a structure (%#v)", data) + } + + t := value.Type() + if value.Kind() == reflect.Ptr { + if value.IsNil() { // create the structure if it's nil + s := reflect.New(value.Type().Elem()) + value.Set(s) + value = s + } + + value = value.Elem() + t = t.Elem() + } + + // unwrap any payloads + if payload := tag.Get("payload"); payload != "" { + field, _ := t.FieldByName(payload) + return unmarshalAny(value.FieldByName(payload), data, field.Tag) + } + + for i := 0; i < t.NumField(); i++ { + field := t.Field(i) + if field.PkgPath != "" { + continue // ignore unexported fields + } + + // figure out what this field is called + name := field.Name + if locName := field.Tag.Get("locationName"); locName != "" { + name = locName + } + + member := value.FieldByIndex(field.Index) + err := unmarshalAny(member, mapData[name], field.Tag) + if err != nil { + return err + } + } + return nil +} + +func unmarshalList(value reflect.Value, data interface{}, tag reflect.StructTag) error { + if data == nil { + return nil + } + listData, ok := data.([]interface{}) + if !ok { + return fmt.Errorf("JSON value is not a list (%#v)", data) + } + + if value.IsNil() { + l := len(listData) + value.Set(reflect.MakeSlice(value.Type(), l, l)) + } + + for i, c := range listData { + err := unmarshalAny(value.Index(i), c, "") + if err != nil { + return err + } + } + + return nil +} + +func unmarshalMap(value reflect.Value, data interface{}, tag reflect.StructTag) error { + if data == nil { + return nil + } + mapData, ok := data.(map[string]interface{}) + if !ok { + return fmt.Errorf("JSON value is not a map (%#v)", data) + } + + if value.IsNil() { + value.Set(reflect.MakeMap(value.Type())) + } + + for k, v := range mapData { + kvalue := reflect.ValueOf(k) + vvalue := reflect.New(value.Type().Elem()).Elem() + + unmarshalAny(vvalue, v, "") + value.SetMapIndex(kvalue, vvalue) + } + + return nil +} + +func unmarshalScalar(value reflect.Value, data interface{}, tag reflect.StructTag) error { + + switch d := data.(type) { + case nil: + return nil // nothing to do here + case string: + switch value.Interface().(type) { + case *string: + value.Set(reflect.ValueOf(&d)) + case []byte: + b, err := base64.StdEncoding.DecodeString(d) + if err != nil { + return err + } + value.Set(reflect.ValueOf(b)) + case *time.Time: + format := tag.Get("timestampFormat") + if len(format) == 0 { + format = protocol.ISO8601TimeFormatName + } + + t, err := protocol.ParseTime(format, d) + if err != nil { + return err + } + value.Set(reflect.ValueOf(&t)) + case aws.JSONValue: + // No need to use escaping as the value is a non-quoted string. + v, err := protocol.DecodeJSONValue(d, protocol.NoEscape) + if err != nil { + return err + } + value.Set(reflect.ValueOf(v)) + default: + return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) + } + case float64: + switch value.Interface().(type) { + case *int64: + di := int64(d) + value.Set(reflect.ValueOf(&di)) + case *float64: + value.Set(reflect.ValueOf(&d)) + case *time.Time: + // Time unmarshaled from a float64 can only be epoch seconds + t := time.Unix(int64(d), 0).UTC() + value.Set(reflect.ValueOf(&t)) + default: + return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) + } + case bool: + switch value.Interface().(type) { + case *bool: + value.Set(reflect.ValueOf(&d)) + default: + return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type()) + } + default: + return fmt.Errorf("unsupported JSON value (%v)", data) + } + return nil +} diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go index 60e5b09d5..0cb99eb57 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/build.go @@ -21,7 +21,7 @@ func Build(r *request.Request) { "Version": {r.ClientInfo.APIVersion}, } if err := queryutil.Parse(body, r.Params, false); err != nil { - r.Error = awserr.New("SerializationError", "failed encoding Query request", err) + r.Error = awserr.New(request.ErrCodeSerialization, "failed encoding Query request", err) return } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go index 3495c7307..f69c1efc9 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go @@ -24,7 +24,7 @@ func Unmarshal(r *request.Request) { err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result") if err != nil { r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", "failed decoding Query response", err), + awserr.New(request.ErrCodeSerialization, "failed decoding Query response", err), r.HTTPResponse.StatusCode, r.RequestID, ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go index 46d354e82..831b0110c 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go @@ -2,73 +2,68 @@ package query import ( "encoding/xml" - "io/ioutil" + "fmt" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" ) -type xmlErrorResponse struct { - XMLName xml.Name `xml:"ErrorResponse"` - Code string `xml:"Error>Code"` - Message string `xml:"Error>Message"` - RequestID string `xml:"RequestId"` -} - -type xmlServiceUnavailableResponse struct { - XMLName xml.Name `xml:"ServiceUnavailableException"` -} - // UnmarshalErrorHandler is a name request handler to unmarshal request errors var UnmarshalErrorHandler = request.NamedHandler{Name: "awssdk.query.UnmarshalError", Fn: UnmarshalError} +type xmlErrorResponse struct { + Code string `xml:"Error>Code"` + Message string `xml:"Error>Message"` + RequestID string `xml:"RequestId"` +} + +type xmlResponseError struct { + xmlErrorResponse +} + +func (e *xmlResponseError) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { + const svcUnavailableTagName = "ServiceUnavailableException" + const errorResponseTagName = "ErrorResponse" + + switch start.Name.Local { + case svcUnavailableTagName: + e.Code = svcUnavailableTagName + e.Message = "service is unavailable" + return d.Skip() + + case errorResponseTagName: + return d.DecodeElement(&e.xmlErrorResponse, &start) + + default: + return fmt.Errorf("unknown error response tag, %v", start) + } +} + // UnmarshalError unmarshals an error response for an AWS Query service. func UnmarshalError(r *request.Request) { defer r.HTTPResponse.Body.Close() - bodyBytes, err := ioutil.ReadAll(r.HTTPResponse.Body) + var respErr xmlResponseError + err := xmlutil.UnmarshalXMLError(&respErr, r.HTTPResponse.Body) if err != nil { r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", "failed to read from query HTTP response body", err), + awserr.New(request.ErrCodeSerialization, + "failed to unmarshal error message", err), r.HTTPResponse.StatusCode, r.RequestID, ) return } - // First check for specific error - resp := xmlErrorResponse{} - decodeErr := xml.Unmarshal(bodyBytes, &resp) - if decodeErr == nil { - reqID := resp.RequestID - if reqID == "" { - reqID = r.RequestID - } - r.Error = awserr.NewRequestFailure( - awserr.New(resp.Code, resp.Message, nil), - r.HTTPResponse.StatusCode, - reqID, - ) - return + reqID := respErr.RequestID + if len(reqID) == 0 { + reqID = r.RequestID } - // Check for unhandled error - servUnavailResp := xmlServiceUnavailableResponse{} - unavailErr := xml.Unmarshal(bodyBytes, &servUnavailResp) - if unavailErr == nil { - r.Error = awserr.NewRequestFailure( - awserr.New("ServiceUnavailableException", "service is unavailable", nil), - r.HTTPResponse.StatusCode, - r.RequestID, - ) - return - } - - // Failed to retrieve any error message from the response body r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", - "failed to decode query XML error response", decodeErr), + awserr.New(respErr.Code, respErr.Message, nil), r.HTTPResponse.StatusCode, - r.RequestID, + reqID, ) } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go index b80f84fbb..1301b149d 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go @@ -25,6 +25,8 @@ var noEscape [256]bool var errValueNotSet = fmt.Errorf("value not set") +var byteSliceType = reflect.TypeOf([]byte{}) + func init() { for i := 0; i < len(noEscape); i++ { // AWS expects every character except these to be escaped @@ -94,6 +96,14 @@ func buildLocationElements(r *request.Request, v reflect.Value, buildGETQuery bo continue } + // Support the ability to customize values to be marshaled as a + // blob even though they were modeled as a string. Required for S3 + // API operations like SSECustomerKey is modeled as stirng but + // required to be base64 encoded in request. + if field.Tag.Get("marshal-as") == "blob" { + m = m.Convert(byteSliceType) + } + var err error switch field.Tag.Get("location") { case "headers": // header maps @@ -137,7 +147,7 @@ func buildBody(r *request.Request, v reflect.Value) { case string: r.SetStringBody(reader) default: - r.Error = awserr.New("SerializationError", + r.Error = awserr.New(request.ErrCodeSerialization, "failed to encode REST request", fmt.Errorf("unknown payload type %s", payload.Type())) } @@ -152,7 +162,7 @@ func buildHeader(header *http.Header, v reflect.Value, name string, tag reflect. if err == errValueNotSet { return nil } else if err != nil { - return awserr.New("SerializationError", "failed to encode REST request", err) + return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) } name = strings.TrimSpace(name) @@ -170,7 +180,7 @@ func buildHeaderMap(header *http.Header, v reflect.Value, tag reflect.StructTag) if err == errValueNotSet { continue } else if err != nil { - return awserr.New("SerializationError", "failed to encode REST request", err) + return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) } keyStr := strings.TrimSpace(key.String()) @@ -186,7 +196,7 @@ func buildURI(u *url.URL, v reflect.Value, name string, tag reflect.StructTag) e if err == errValueNotSet { return nil } else if err != nil { - return awserr.New("SerializationError", "failed to encode REST request", err) + return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) } u.Path = strings.Replace(u.Path, "{"+name+"}", value, -1) @@ -219,7 +229,7 @@ func buildQueryString(query url.Values, v reflect.Value, name string, tag reflec if err == errValueNotSet { return nil } else if err != nil { - return awserr.New("SerializationError", "failed to encode REST request", err) + return awserr.New(request.ErrCodeSerialization, "failed to encode REST request", err) } query.Set(name, str) } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go index 33fd53b12..de021367d 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go @@ -57,7 +57,7 @@ func unmarshalBody(r *request.Request, v reflect.Value) { defer r.HTTPResponse.Body.Close() b, err := ioutil.ReadAll(r.HTTPResponse.Body) if err != nil { - r.Error = awserr.New("SerializationError", "failed to decode REST response", err) + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) } else { payload.Set(reflect.ValueOf(b)) } @@ -65,7 +65,7 @@ func unmarshalBody(r *request.Request, v reflect.Value) { defer r.HTTPResponse.Body.Close() b, err := ioutil.ReadAll(r.HTTPResponse.Body) if err != nil { - r.Error = awserr.New("SerializationError", "failed to decode REST response", err) + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) } else { str := string(b) payload.Set(reflect.ValueOf(&str)) @@ -77,7 +77,7 @@ func unmarshalBody(r *request.Request, v reflect.Value) { case "io.ReadSeeker": b, err := ioutil.ReadAll(r.HTTPResponse.Body) if err != nil { - r.Error = awserr.New("SerializationError", + r.Error = awserr.New(request.ErrCodeSerialization, "failed to read response body", err) return } @@ -85,7 +85,7 @@ func unmarshalBody(r *request.Request, v reflect.Value) { default: io.Copy(ioutil.Discard, r.HTTPResponse.Body) defer r.HTTPResponse.Body.Close() - r.Error = awserr.New("SerializationError", + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode REST response", fmt.Errorf("unknown payload type %s", payload.Type())) } @@ -115,14 +115,14 @@ func unmarshalLocationElements(r *request.Request, v reflect.Value) { case "header": err := unmarshalHeader(m, r.HTTPResponse.Header.Get(name), field.Tag) if err != nil { - r.Error = awserr.New("SerializationError", "failed to decode REST response", err) + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) break } case "headers": prefix := field.Tag.Get("locationName") err := unmarshalHeaderMap(m, r.HTTPResponse.Header, prefix) if err != nil { - r.Error = awserr.New("SerializationError", "failed to decode REST response", err) + r.Error = awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err) break } } diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go index b0f4e2456..cf569645d 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go @@ -37,7 +37,8 @@ func Build(r *request.Request) { err := xmlutil.BuildXML(r.Params, xml.NewEncoder(&buf)) if err != nil { r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", "failed to encode rest XML request", err), + awserr.New(request.ErrCodeSerialization, + "failed to encode rest XML request", err), r.HTTPResponse.StatusCode, r.RequestID, ) @@ -55,7 +56,8 @@ func Unmarshal(r *request.Request) { err := xmlutil.UnmarshalXML(r.Data, decoder, "") if err != nil { r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", "failed to decode REST XML response", err), + awserr.New(request.ErrCodeSerialization, + "failed to decode REST XML response", err), r.HTTPResponse.StatusCode, r.RequestID, ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go index ff1ef6830..7108d3800 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go @@ -1,6 +1,7 @@ package xmlutil import ( + "bytes" "encoding/base64" "encoding/xml" "fmt" @@ -10,9 +11,27 @@ import ( "strings" "time" + "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/private/protocol" ) +// UnmarshalXMLError unmarshals the XML error from the stream into the value +// type specified. The value must be a pointer. If the message fails to +// unmarshal, the message content will be included in the returned error as a +// awserr.UnmarshalError. +func UnmarshalXMLError(v interface{}, stream io.Reader) error { + var errBuf bytes.Buffer + body := io.TeeReader(stream, &errBuf) + + err := xml.NewDecoder(body).Decode(v) + if err != nil && err != io.EOF { + return awserr.NewUnmarshalError(err, + "failed to unmarshal error message", errBuf.Bytes()) + } + + return nil +} + // UnmarshalXML deserializes an xml.Decoder into the container v. V // needs to match the shape of the XML expected to be decoded. // If the shape doesn't match unmarshaling will fail. diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index 83a42d249..d91b0f353 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -545,6 +545,10 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt // Deletes an analytics configuration for the bucket (specified by the analytics // configuration ID). // +// To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration +// action. The bucket owner has this permission by default. The bucket owner +// can grant this permission to others. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -1071,7 +1075,7 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput) // DeleteBucketReplication API operation for Amazon Simple Storage Service. // // Deletes the replication configuration from the bucket. For information about -// replication configuration, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) +// replication configuration, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) // in the Amazon S3 Developer Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3335,8 +3339,8 @@ func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfiguration // GetObjectLockConfiguration API operation for Amazon Simple Storage Service. // -// Gets the Object Lock configuration for a bucket. The rule specified in the -// Object Lock configuration will be applied by default to every new object +// Gets the object lock configuration for a bucket. The rule specified in the +// object lock configuration will be applied by default to every new object // placed in the specified bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4210,7 +4214,7 @@ func (c *S3) ListMultipartUploadsWithContext(ctx aws.Context, input *ListMultipa // // Example iterating over at most 3 pages of a ListMultipartUploads operation. // pageNum := 0 // err := client.ListMultipartUploadsPages(params, -// func(page *ListMultipartUploadsOutput, lastPage bool) bool { +// func(page *s3.ListMultipartUploadsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 @@ -4340,7 +4344,7 @@ func (c *S3) ListObjectVersionsWithContext(ctx aws.Context, input *ListObjectVer // // Example iterating over at most 3 pages of a ListObjectVersions operation. // pageNum := 0 // err := client.ListObjectVersionsPages(params, -// func(page *ListObjectVersionsOutput, lastPage bool) bool { +// func(page *s3.ListObjectVersionsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 @@ -4477,7 +4481,7 @@ func (c *S3) ListObjectsWithContext(ctx aws.Context, input *ListObjectsInput, op // // Example iterating over at most 3 pages of a ListObjects operation. // pageNum := 0 // err := client.ListObjectsPages(params, -// func(page *ListObjectsOutput, lastPage bool) bool { +// func(page *s3.ListObjectsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 @@ -4615,7 +4619,7 @@ func (c *S3) ListObjectsV2WithContext(ctx aws.Context, input *ListObjectsV2Input // // Example iterating over at most 3 pages of a ListObjectsV2 operation. // pageNum := 0 // err := client.ListObjectsV2Pages(params, -// func(page *ListObjectsV2Output, lastPage bool) bool { +// func(page *s3.ListObjectsV2Output, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 @@ -4745,7 +4749,7 @@ func (c *S3) ListPartsWithContext(ctx aws.Context, input *ListPartsInput, opts . // // Example iterating over at most 3 pages of a ListParts operation. // pageNum := 0 // err := client.ListPartsPages(params, -// func(page *ListPartsOutput, lastPage bool) bool { +// func(page *s3.ListPartsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 @@ -5754,8 +5758,7 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R // PutBucketPolicy API operation for Amazon Simple Storage Service. // -// Replaces a policy on a bucket. If the bucket already has a policy, the one -// in this request completely replaces it. +// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -5831,7 +5834,7 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req // PutBucketReplication API operation for Amazon Simple Storage Service. // // Creates a replication configuration or replaces an existing one. For more -// information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) +// information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) // in the Amazon S3 Developer Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -6439,8 +6442,8 @@ func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfiguration // PutObjectLockConfiguration API operation for Amazon Simple Storage Service. // -// Places an Object Lock configuration on the specified bucket. The rule specified -// in the Object Lock configuration will be applied by default to every new +// Places an object lock configuration on the specified bucket. The rule specified +// in the object lock configuration will be applied by default to every new // object placed in the specified bucket. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -7010,13 +7013,16 @@ func (c *S3) UploadPartCopyWithContext(ctx aws.Context, input *UploadPartCopyInp return out, req.Send() } -// Specifies the days since the initiation of an Incomplete Multipart Upload -// that Lifecycle will wait before permanently removing all parts of the upload. +// Specifies the days since the initiation of an incomplete multipart upload +// that Amazon S3 will wait before permanently removing all parts of the upload. +// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket +// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) +// in the Amazon Simple Storage Service Developer Guide. type AbortIncompleteMultipartUpload struct { _ struct{} `type:"structure"` - // Indicates the number of days that must pass since initiation for Lifecycle - // to abort an Incomplete Multipart Upload. + // Specifies the number of days after which Amazon S3 aborts an incomplete multipart + // upload. DaysAfterInitiation *int64 `type:"integer"` } @@ -7039,9 +7045,13 @@ func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortI type AbortMultipartUploadInput struct { _ struct{} `type:"structure"` + // Name of the bucket to which the multipart upload was initiated. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // Key of the object for which the multipart upload was initiated. + // // Key is a required field Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` @@ -7051,6 +7061,8 @@ type AbortMultipartUploadInput struct { // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` + // Upload ID that identifies the multipart upload. + // // UploadId is a required field UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` } @@ -7145,10 +7157,13 @@ func (s *AbortMultipartUploadOutput) SetRequestCharged(v string) *AbortMultipart return s } +// Configures the transfer acceleration state for an Amazon S3 bucket. For more +// information, see Amazon S3 Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) +// in the Amazon Simple Storage Service Developer Guide. type AccelerateConfiguration struct { _ struct{} `type:"structure"` - // The accelerate configuration of the bucket. + // Specifies the transfer acceleration status of the bucket. Status *string `type:"string" enum:"BucketAccelerateStatus"` } @@ -7168,12 +7183,14 @@ func (s *AccelerateConfiguration) SetStatus(v string) *AccelerateConfiguration { return s } +// Contains the elements that set the ACL permissions for an object per grantee. type AccessControlPolicy struct { _ struct{} `type:"structure"` // A list of grants. Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"` + // Container for the bucket owner's display name and ID. Owner *Owner `type:"structure"` } @@ -7223,7 +7240,9 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy { type AccessControlTranslation struct { _ struct{} `type:"structure"` - // The override value for the owner of the replica object. + // Specifies the replica ownership. For default and valid values, see PUT bucket + // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) + // in the Amazon Simple Storage Service API Reference. // // Owner is a required field Owner *string `type:"string" required:"true" enum:"OwnerOverride"` @@ -7258,10 +7277,14 @@ func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation return s } +// A conjunction (logical AND) of predicates, which is used in evaluating a +// metrics filter. The operator must have at least two predicates in any combination, +// and an object must match all of the predicates for the filter to apply. type AnalyticsAndOperator struct { _ struct{} `type:"structure"` - // The prefix to use when evaluating an AND predicate. + // The prefix to use when evaluating an AND predicate: The prefix that an object + // must have to be included in the metrics results. Prefix *string `type:"string"` // The list of tags to use when evaluating an AND predicate. @@ -7310,6 +7333,11 @@ func (s *AnalyticsAndOperator) SetTags(v []*Tag) *AnalyticsAndOperator { return s } +// Specifies the configuration and any analyses for the analytics filter of +// an Amazon S3 bucket. +// +// For more information, see GET Bucket analytics (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETAnalyticsConfig.html) +// in the Amazon Simple Storage Service API Reference. type AnalyticsConfiguration struct { _ struct{} `type:"structure"` @@ -7318,13 +7346,13 @@ type AnalyticsConfiguration struct { // If no filter is provided, all objects will be considered in any analysis. Filter *AnalyticsFilter `type:"structure"` - // The identifier used to represent an analytics configuration. + // The ID that identifies the analytics configuration. // // Id is a required field Id *string `type:"string" required:"true"` - // If present, it indicates that data related to access patterns will be collected - // and made available to analyze the tradeoffs between different storage classes. + // Contains data related to access patterns to be collected and made available + // to analyze the tradeoffs between different storage classes. // // StorageClassAnalysis is a required field StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"` @@ -7384,6 +7412,7 @@ func (s *AnalyticsConfiguration) SetStorageClassAnalysis(v *StorageClassAnalysis return s } +// Where to publish the analytics results. type AnalyticsExportDestination struct { _ struct{} `type:"structure"` @@ -7492,7 +7521,7 @@ func (s *AnalyticsFilter) SetTag(v *Tag) *AnalyticsFilter { type AnalyticsS3BucketDestination struct { _ struct{} `type:"structure"` - // The Amazon resource name (ARN) of the bucket to which data is exported. + // The Amazon Resource Name (ARN) of the bucket to which data is exported. // // Bucket is a required field Bucket *string `type:"string" required:"true"` @@ -7501,13 +7530,12 @@ type AnalyticsS3BucketDestination struct { // the owner will not be validated prior to exporting data. BucketAccountId *string `type:"string"` - // The file format used when exporting data to Amazon S3. + // Specifies the file format used when exporting data to Amazon S3. // // Format is a required field Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"` - // The prefix to use when exporting data. The exported data begins with this - // prefix. + // The prefix to use when exporting data. The prefix is prepended to all results. Prefix *string `type:"string"` } @@ -7600,9 +7628,14 @@ func (s *Bucket) SetName(v string) *Bucket { return s } +// Specifies the lifecycle configuration for objects in an Amazon S3 bucket. +// For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) +// in the Amazon Simple Storage Service Developer Guide. type BucketLifecycleConfiguration struct { _ struct{} `type:"structure"` + // A lifecycle rule for individual objects in an Amazon S3 bucket. + // // Rules is a required field Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` } @@ -7649,9 +7682,10 @@ func (s *BucketLifecycleConfiguration) SetRules(v []*LifecycleRule) *BucketLifec type BucketLoggingStatus struct { _ struct{} `type:"structure"` - // Container for logging information. Presence of this element indicates that - // logging is enabled. Parameters TargetBucket and TargetPrefix are required - // in this case. + // Describes where logs are stored and the prefix that Amazon S3 assigns to + // all log object keys for a bucket. For more information, see PUT Bucket logging + // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) + // in the Amazon Simple Storage Service API Reference. LoggingEnabled *LoggingEnabled `type:"structure"` } @@ -7686,9 +7720,15 @@ func (s *BucketLoggingStatus) SetLoggingEnabled(v *LoggingEnabled) *BucketLoggin return s } +// Describes the cross-origin access configuration for objects in an Amazon +// S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon +// Simple Storage Service Developer Guide. type CORSConfiguration struct { _ struct{} `type:"structure"` + // A set of allowed origins and methods. + // // CORSRules is a required field CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true" required:"true"` } @@ -7732,14 +7772,18 @@ func (s *CORSConfiguration) SetCORSRules(v []*CORSRule) *CORSConfiguration { return s } +// Specifies a cross-origin access rule for an Amazon S3 bucket. type CORSRule struct { _ struct{} `type:"structure"` - // Specifies which headers are allowed in a pre-flight OPTIONS request. + // Headers that are specified in the Access-Control-Request-Headers header. + // These headers are allowed in a preflight OPTIONS request. In response to + // any preflight OPTIONS request, Amazon S3 returns any requested headers that + // are allowed. AllowedHeaders []*string `locationName:"AllowedHeader" type:"list" flattened:"true"` - // Identifies HTTP methods that the domain/origin specified in the rule is allowed - // to execute. + // An HTTP method that you allow the origin to execute. Valid values are GET, + // PUT, HEAD, POST, and DELETE. // // AllowedMethods is a required field AllowedMethods []*string `locationName:"AllowedMethod" type:"list" flattened:"true" required:"true"` @@ -8290,6 +8334,7 @@ func (s *CompletedPart) SetPartNumber(v int64) *CompletedPart { return s } +// Specifies a condition that must be met for a redirect to apply. type Condition struct { _ struct{} `type:"structure"` @@ -8409,7 +8454,7 @@ type CopyObjectInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt // the source object. The encryption key provided in this header must be one // that was used when the source object was created. - CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` + CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -8444,10 +8489,10 @@ type CopyObjectInput struct { // Specifies whether you want to apply a Legal Hold to the copied object. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode that you want to apply to the copied object. + // The object lock mode that you want to apply to the copied object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when you want the copied object's Object Lock to expire. + // The date and time when you want the copied object's object lock to expire. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that she or he will be charged for the @@ -8464,7 +8509,7 @@ type CopyObjectInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -8984,7 +9029,8 @@ type CreateBucketInput struct { // Allows grantee to write the ACL for the applicable bucket. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` - // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // Specifies whether you want Amazon S3 object lock to be enabled for the new + // bucket. ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` } @@ -9147,10 +9193,10 @@ type CreateMultipartUploadInput struct { // Specifies whether you want to apply a Legal Hold to the uploaded object. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // Specifies the Object Lock mode that you want to apply to the uploaded object. + // Specifies the object lock mode that you want to apply to the uploaded object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // Specifies the date and time when you want the Object Lock to expire. + // Specifies the date and time when you want the object lock to expire. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that she or he will be charged for the @@ -9167,7 +9213,7 @@ type CreateMultipartUploadInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -9517,7 +9563,7 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo return s } -// The container element for specifying the default Object Lock retention settings +// The container element for specifying the default object lock retention settings // for new objects placed in the specified bucket. type DefaultRetention struct { _ struct{} `type:"structure"` @@ -9525,7 +9571,7 @@ type DefaultRetention struct { // The number of days that you want to specify for the default retention period. Days *int64 `type:"integer"` - // The default Object Lock retention mode you want to apply to new objects placed + // The default object lock retention mode you want to apply to new objects placed // in the specified bucket. Mode *string `type:"string" enum:"ObjectLockRetentionMode"` @@ -9625,7 +9671,7 @@ type DeleteBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The identifier used to represent an analytics configuration. + // The ID that identifies the analytics configuration. // // Id is a required field Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` @@ -10425,7 +10471,7 @@ type DeleteObjectInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates whether S3 Object Lock should bypass Governance-mode restrictions + // Indicates whether Amazon S3 object lock should bypass governance-mode restrictions // to process this operation. BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` @@ -10665,7 +10711,7 @@ type DeleteObjectsInput struct { Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` // Specifies whether you want to delete this object even if it has a Governance-type - // Object Lock in place. You must have sufficient permissions to perform this + // object lock in place. You must have sufficient permissions to perform this // operation. BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` @@ -10902,33 +10948,33 @@ func (s *DeletedObject) SetVersionId(v string) *DeletedObject { return s } -// A container for information about the replication destination. +// Specifies information about where to publish analysis or configuration results +// for an Amazon S3 bucket. type Destination struct { _ struct{} `type:"structure"` - // A container for information about access control for replicas. - // - // Use this element only in a cross-account scenario where source and destination - // bucket owners are not the same to change replica ownership to the AWS account - // that owns the destination bucket. If you don't add this element to the replication - // configuration, the replicas are owned by same AWS account that owns the source - // object. + // Specify this only in a cross-account scenario (where source and destination + // bucket owners are not the same), and you want to change replica ownership + // to the AWS account that owns the destination bucket. If this is not specified + // in the replication configuration, the replicas are owned by same AWS account + // that owns the source object. AccessControlTranslation *AccessControlTranslation `type:"structure"` - // The account ID of the destination bucket. Currently, Amazon S3 verifies this - // value only if Access Control Translation is enabled. - // - // In a cross-account scenario, if you change replica ownership to the AWS account - // that owns the destination bucket by adding the AccessControlTranslation element, - // this is the account ID of the owner of the destination bucket. + // Destination bucket owner account ID. In a cross-account scenario, if you + // direct Amazon S3 to change replica ownership to the AWS account that owns + // the destination bucket by specifying the AccessControlTranslation property, + // this is the account ID of the destination bucket owner. For more information, + // see Cross-Region Replication Additional Configuration: Change Replica Owner + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in + // the Amazon Simple Storage Service Developer Guide. Account *string `type:"string"` // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to // store replicas of the object identified by the rule. // - // If there are multiple rules in your replication configuration, all rules - // must specify the same bucket as the destination. A replication configuration - // can replicate objects to only one destination bucket. + // A replication configuration can replicate objects to only one destination + // bucket. If there are multiple rules in your replication configuration, all + // rules must specify the same destination bucket. // // Bucket is a required field Bucket *string `type:"string" required:"true"` @@ -10937,8 +10983,13 @@ type Destination struct { // is specified, you must specify this element. EncryptionConfiguration *EncryptionConfiguration `type:"structure"` - // The class of storage used to store the object. By default Amazon S3 uses - // storage class of the source object when creating a replica. + // The storage class to use when replicating objects, such as standard or reduced + // redundancy. By default, Amazon S3 uses the storage class of the source object + // to create the object replica. + // + // For valid values, see the StorageClass element of the PUT Bucket replication + // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) + // action in the Amazon Simple Storage Service API Reference. StorageClass *string `type:"string" enum:"StorageClass"` } @@ -11068,13 +11119,13 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption { return s } -// A container for information about the encryption-based configuration for -// replicas. +// Specifies encryption-related information for an Amazon S3 bucket that is +// a destination for replicated objects. type EncryptionConfiguration struct { _ struct{} `type:"structure"` - // The ID of the AWS KMS key for the AWS Region where the destination bucket - // resides. Amazon S3 uses this key to encrypt the replica object. + // Specifies the AWS KMS Key ID (Key ARN or Alias ARN) for the destination bucket. + // Amazon S3 uses this key to encrypt replica objects. ReplicaKmsKeyID *string `type:"string"` } @@ -11207,18 +11258,19 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument { return s } -// A container for a key value pair that defines the criteria for the filter -// rule. +// Specifies the Amazon S3 object key name to filter on and whether to filter +// on the suffix or prefix of the key name. type FilterRule struct { _ struct{} `type:"structure"` // The object key name prefix or suffix identifying one or more objects to which - // the filtering rule applies. The maximum prefix length is 1,024 characters. - // Overlapping prefixes and suffixes are not supported. For more information, - // see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // the filtering rule applies. The maximum length is 1,024 characters. Overlapping + // prefixes and suffixes are not supported. For more information, see Configuring + // Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) // in the Amazon Simple Storage Service Developer Guide. Name *string `type:"string" enum:"FilterRuleName"` + // The value that the filter searches for in object key names. Value *string `type:"string"` } @@ -11400,7 +11452,7 @@ type GetBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The identifier used to represent an analytics configuration. + // The ID that identifies the analytics configuration. // // Id is a required field Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` @@ -11597,8 +11649,7 @@ func (s *GetBucketEncryptionInput) getBucket() (v string) { type GetBucketEncryptionOutput struct { _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` - // Container for server-side encryption configuration rules. Currently S3 supports - // one rule only. + // Specifies the default server-side-encryption configuration. ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"` } @@ -11956,9 +12007,10 @@ func (s *GetBucketLoggingInput) getBucket() (v string) { type GetBucketLoggingOutput struct { _ struct{} `type:"structure"` - // Container for logging information. Presence of this element indicates that - // logging is enabled. Parameters TargetBucket and TargetPrefix are required - // in this case. + // Describes where logs are stored and the prefix that Amazon S3 assigns to + // all log object keys for a bucket. For more information, see PUT Bucket logging + // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) + // in the Amazon Simple Storage Service API Reference. LoggingEnabled *LoggingEnabled `type:"structure"` } @@ -12592,6 +12644,8 @@ type GetBucketWebsiteOutput struct { IndexDocument *IndexDocument `type:"structure"` + // Specifies the redirect behavior of all requests to a website endpoint of + // an Amazon S3 bucket. RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` @@ -12820,7 +12874,7 @@ type GetObjectInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -13103,7 +13157,7 @@ func (s *GetObjectLegalHoldOutput) SetLegalHold(v *ObjectLockLegalHold) *GetObje type GetObjectLockConfigurationInput struct { _ struct{} `type:"structure"` - // The bucket whose Object Lock configuration you want to retrieve. + // The bucket whose object lock configuration you want to retrieve. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -13151,7 +13205,7 @@ func (s *GetObjectLockConfigurationInput) getBucket() (v string) { type GetObjectLockConfigurationOutput struct { _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` - // The specified bucket's Object Lock configuration. + // The specified bucket's object lock configuration. ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"` } @@ -13235,10 +13289,10 @@ type GetObjectOutput struct { // returned if you have permission to view an object's legal hold status. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode currently in place for this object. + // The object lock mode currently in place for this object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when this object's Object Lock will expire. + // The date and time when this object's object lock will expire. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // The count of parts this object has. @@ -14136,7 +14190,7 @@ type HeadObjectInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -14328,10 +14382,10 @@ type HeadObjectOutput struct { // The Legal Hold status for the specified object. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode currently in place for this object. + // The object lock mode currently in place for this object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when this object's Object Lock will expire. + // The date and time when this object's object lock expires. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // The count of parts this object has. @@ -14680,6 +14734,9 @@ func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization { return s } +// Specifies the inventory configuration for an Amazon S3 bucket. For more information, +// see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) +// in the Amazon Simple Storage Service API Reference. type InventoryConfiguration struct { _ struct{} `type:"structure"` @@ -14697,12 +14754,16 @@ type InventoryConfiguration struct { // Id is a required field Id *string `type:"string" required:"true"` - // Specifies which object version(s) to included in the inventory results. + // Object versions to include in the inventory list. If set to All, the list + // includes all the object versions, which adds the version-related fields VersionId, + // IsLatest, and DeleteMarker to the list. If set to Current, the list does + // not contain these version-related fields. // // IncludedObjectVersions is a required field IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"` - // Specifies whether the inventory is enabled or disabled. + // Specifies whether the inventory is enabled or disabled. If set to True, an + // inventory list is generated. If set to False, no inventory list is generated. // // IsEnabled is a required field IsEnabled *bool `type:"boolean" required:"true"` @@ -15145,11 +15206,15 @@ func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter { type LambdaFunctionConfiguration struct { _ struct{} `type:"structure"` + // The Amazon S3 bucket event for which to invoke the AWS Lambda function. For + // more information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Events is a required field Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` - // A container for object key name filtering rules. For information about key - // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // Specifies object key name filtering rules. For information about key name + // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) // in the Amazon Simple Storage Service Developer Guide. Filter *NotificationConfigurationFilter `type:"structure"` @@ -15157,8 +15222,8 @@ type LambdaFunctionConfiguration struct { // If you don't provide one, Amazon S3 will assign an ID. Id *string `type:"string"` - // The Amazon Resource Name (ARN) of the Lambda cloud function that Amazon S3 - // can invoke when it detects events of the specified type. + // The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 + // invokes when the specified event type occurs. // // LambdaFunctionArn is a required field LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"` @@ -15309,8 +15374,11 @@ func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExp type LifecycleRule struct { _ struct{} `type:"structure"` - // Specifies the days since the initiation of an Incomplete Multipart Upload - // that Lifecycle will wait before permanently removing all parts of the upload. + // Specifies the days since the initiation of an incomplete multipart upload + // that Amazon S3 will wait before permanently removing all parts of the upload. + // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket + // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + // in the Amazon Simple Storage Service Developer Guide. AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` Expiration *LifecycleExpiration `type:"structure"` @@ -17267,9 +17335,10 @@ func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location { return s } -// Container for logging information. Presence of this element indicates that -// logging is enabled. Parameters TargetBucket and TargetPrefix are required -// in this case. +// Describes where logs are stored and the prefix that Amazon S3 assigns to +// all log object keys for a bucket. For more information, see PUT Bucket logging +// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) +// in the Amazon Simple Storage Service API Reference. type LoggingEnabled struct { _ struct{} `type:"structure"` @@ -17285,8 +17354,9 @@ type LoggingEnabled struct { TargetGrants []*TargetGrant `locationNameList:"Grant" type:"list"` - // This element lets you specify a prefix for the keys that the log files will - // be stored under. + // A prefix for all log object keys. If you store log files from multiple Amazon + // S3 buckets in a single bucket, you can use a prefix to distinguish which + // log files came from which bucket. // // TargetPrefix is a required field TargetPrefix *string `type:"string" required:"true"` @@ -17429,6 +17499,13 @@ func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator { return s } +// Specifies a metrics configuration for the CloudWatch request metrics (specified +// by the metrics configuration ID) from an Amazon S3 bucket. If you're updating +// an existing metrics configuration, note that this is a full replacement of +// the existing metrics configuration. If you don't include the elements you +// want to keep, they are erased. For more information, see PUT Bucket metrics +// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) +// in the Amazon Simple Storage Service API Reference. type MetricsConfiguration struct { _ struct{} `type:"structure"` @@ -17624,7 +17701,7 @@ type NoncurrentVersionExpiration struct { // Specifies the number of days an object is noncurrent before Amazon S3 can // perform the associated action. For information about the noncurrent days // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) // in the Amazon Simple Storage Service Developer Guide. NoncurrentDays *int64 `type:"integer"` } @@ -17646,11 +17723,11 @@ func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVers } // Container for the transition rule that describes when noncurrent objects -// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or -// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning +// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, +// or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning // is suspended), you can set this action to request that Amazon S3 transition // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, -// GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's +// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's // lifetime. type NoncurrentVersionTransition struct { _ struct{} `type:"structure"` @@ -17693,10 +17770,16 @@ func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersi type NotificationConfiguration struct { _ struct{} `type:"structure"` + // Describes the AWS Lambda functions to invoke and the events for which to + // invoke them. LambdaFunctionConfigurations []*LambdaFunctionConfiguration `locationName:"CloudFunctionConfiguration" type:"list" flattened:"true"` + // The Amazon Simple Queue Service queues to publish messages to and the events + // for which to publish messages. QueueConfigurations []*QueueConfiguration `locationName:"QueueConfiguration" type:"list" flattened:"true"` + // The topic to which notifications are sent and the events for which notifications + // are generated. TopicConfigurations []*TopicConfiguration `locationName:"TopicConfiguration" type:"list" flattened:"true"` } @@ -17806,8 +17889,8 @@ func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConf return s } -// A container for object key name filtering rules. For information about key -// name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) +// Specifies object key name filtering rules. For information about key name +// filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) // in the Amazon Simple Storage Service Developer Guide. type NotificationConfigurationFilter struct { _ struct{} `type:"structure"` @@ -17945,14 +18028,14 @@ func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier { return s } -// The container element for Object Lock configuration parameters. +// The container element for object lock configuration parameters. type ObjectLockConfiguration struct { _ struct{} `type:"structure"` - // Indicates whether this bucket has an Object Lock configuration enabled. + // Indicates whether this bucket has an object lock configuration enabled. ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"` - // The Object Lock rule in place for the specified object. + // The object lock rule in place for the specified object. Rule *ObjectLockRule `type:"structure"` } @@ -18009,7 +18092,7 @@ type ObjectLockRetention struct { // Indicates the Retention mode for the specified object. Mode *string `type:"string" enum:"ObjectLockRetentionMode"` - // The date on which this Object Lock Retention will expire. + // The date on which this object lock retention expires. RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` } @@ -18035,7 +18118,7 @@ func (s *ObjectLockRetention) SetRetainUntilDate(v time.Time) *ObjectLockRetenti return s } -// The container element for an Object Lock rule. +// The container element for an object lock rule. type ObjectLockRule struct { _ struct{} `type:"structure"` @@ -18418,6 +18501,7 @@ func (s *ProgressEvent) UnmarshalEvent( return nil } +// Specifies the Block Public Access configuration for an Amazon S3 bucket. type PublicAccessBlockConfiguration struct { _ struct{} `type:"structure"` @@ -18575,6 +18659,7 @@ type PutBucketAclInput struct { // The canned ACL to apply to the bucket. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` + // Contains the elements that set the ACL permissions for an object per grantee. AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` // Bucket is a required field @@ -18710,7 +18795,7 @@ type PutBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The identifier used to represent an analytics configuration. + // The ID that identifies the analytics configuration. // // Id is a required field Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` @@ -18798,6 +18883,11 @@ type PutBucketCorsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // Describes the cross-origin access configuration for objects in an Amazon + // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon + // Simple Storage Service Developer Guide. + // // CORSConfiguration is a required field CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` } @@ -18872,14 +18962,16 @@ func (s PutBucketCorsOutput) GoString() string { type PutBucketEncryptionInput struct { _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` - // The name of the bucket for which the server-side encryption configuration - // is set. + // Specifies default encryption for a bucket using server-side encryption with + // Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). For information + // about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket + // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Container for server-side encryption configuration rules. Currently S3 supports - // one rule only. + // Specifies the default server-side-encryption configuration. // // ServerSideEncryptionConfiguration is a required field ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"ServerSideEncryptionConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` @@ -19053,6 +19145,9 @@ type PutBucketLifecycleConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // Specifies the lifecycle configuration for objects in an Amazon S3 bucket. + // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) + // in the Amazon Simple Storage Service Developer Guide. LifecycleConfiguration *BucketLifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` } @@ -19612,6 +19707,9 @@ type PutBucketReplicationInput struct { // // ReplicationConfiguration is a required field ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` + + // A token that allows Amazon S3 object lock to be enabled for an existing bucket. + Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` } // String returns the string representation @@ -19667,6 +19765,12 @@ func (s *PutBucketReplicationInput) SetReplicationConfiguration(v *ReplicationCo return s } +// SetToken sets the Token field's value. +func (s *PutBucketReplicationInput) SetToken(v string) *PutBucketReplicationInput { + s.Token = &v + return s +} + type PutBucketReplicationOutput struct { _ struct{} `type:"structure"` } @@ -19845,6 +19949,10 @@ type PutBucketVersioningInput struct { // and the value that is displayed on your authentication device. MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` + // Describes the versioning state of an Amazon S3 bucket. For more information, + // see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) + // in the Amazon Simple Storage Service API Reference. + // // VersioningConfiguration is a required field VersioningConfiguration *VersioningConfiguration `locationName:"VersioningConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` } @@ -19923,6 +20031,8 @@ type PutBucketWebsiteInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // Specifies website configuration parameters for an Amazon S3 bucket. + // // WebsiteConfiguration is a required field WebsiteConfiguration *WebsiteConfiguration `locationName:"WebsiteConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` } @@ -20000,6 +20110,7 @@ type PutObjectAclInput struct { // The canned ACL to apply to the object. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` + // Contains the elements that set the ACL permissions for an object per grantee. AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` // Bucket is a required field @@ -20201,7 +20312,8 @@ type PutObjectInput struct { ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` // The base64-encoded 128-bit MD5 digest of the part data. This parameter is - // auto-populated when using the command from the CLI + // auto-populated when using the command from the CLI. This parameted is required + // if object lock parameters are specified. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` // A standard MIME type describing the format of the object data. @@ -20233,10 +20345,10 @@ type PutObjectInput struct { // The Legal Hold status that you want to apply to the specified object. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode that you want to apply to this object. + // The object lock mode that you want to apply to this object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when you want this object's Object Lock to expire. + // The date and time when you want this object's object lock to expire. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that she or he will be charged for the @@ -20253,7 +20365,7 @@ type PutObjectInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -20626,12 +20738,12 @@ func (s *PutObjectLegalHoldOutput) SetRequestCharged(v string) *PutObjectLegalHo type PutObjectLockConfigurationInput struct { _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` - // The bucket whose Object Lock configuration you want to create or replace. + // The bucket whose object lock configuration you want to create or replace. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The Object Lock configuration that you want to apply to the specified bucket. + // The object lock configuration that you want to apply to the specified bucket. ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` // Confirms that the requester knows that she or he will be charged for the @@ -20640,7 +20752,7 @@ type PutObjectLockConfigurationInput struct { // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // A token to allow Object Lock to be enabled for an existing bucket. + // A token to allow Amazon S3 object lock to be enabled for an existing bucket. Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` } @@ -21139,17 +21251,16 @@ func (s PutPublicAccessBlockOutput) GoString() string { return s.String() } -// A container for specifying the configuration for publication of messages -// to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects -// specified events. +// Specifies the configuration for publishing messages to an Amazon Simple Queue +// Service (Amazon SQS) queue when Amazon S3 detects specified events. type QueueConfiguration struct { _ struct{} `type:"structure"` // Events is a required field Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` - // A container for object key name filtering rules. For information about key - // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // Specifies object key name filtering rules. For information about key name + // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) // in the Amazon Simple Storage Service Developer Guide. Filter *NotificationConfigurationFilter `type:"structure"` @@ -21158,7 +21269,7 @@ type QueueConfiguration struct { Id *string `type:"string"` // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 - // will publish a message when it detects events of the specified type. + // publishes a message when it detects events of the specified type. // // QueueArn is a required field QueueArn *string `locationName:"Queue" type:"string" required:"true"` @@ -21304,6 +21415,8 @@ func (s *RecordsEvent) UnmarshalEvent( return nil } +// Specifies how requests are redirected. In the event of an error, you can +// specify a different error code to return. type Redirect struct { _ struct{} `type:"structure"` @@ -21314,8 +21427,8 @@ type Redirect struct { // siblings is present. HttpRedirectCode *string `type:"string"` - // Protocol to use (http, https) when redirecting requests. The default is the - // protocol that is used in the original request. + // Protocol to use when redirecting requests. The default is the protocol that + // is used in the original request. Protocol *string `type:"string" enum:"Protocol"` // The object key prefix to use in the redirect request. For example, to redirect @@ -21327,7 +21440,7 @@ type Redirect struct { ReplaceKeyPrefixWith *string `type:"string"` // The specific object key to use in the redirect request. For example, redirect - // request to error.html. Not required if one of the sibling is present. Can + // request to error.html. Not required if one of the siblings is present. Can // be present only if ReplaceKeyPrefixWith is not provided. ReplaceKeyWith *string `type:"string"` } @@ -21372,16 +21485,18 @@ func (s *Redirect) SetReplaceKeyWith(v string) *Redirect { return s } +// Specifies the redirect behavior of all requests to a website endpoint of +// an Amazon S3 bucket. type RedirectAllRequestsTo struct { _ struct{} `type:"structure"` - // Name of the host where requests will be redirected. + // Name of the host where requests are redirected. // // HostName is a required field HostName *string `type:"string" required:"true"` - // Protocol to use (http, https) when redirecting requests. The default is the - // protocol that is used in the original request. + // Protocol to use when redirecting requests. The default is the protocol that + // is used in the original request. Protocol *string `type:"string" enum:"Protocol"` } @@ -21426,7 +21541,9 @@ type ReplicationConfiguration struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the AWS Identity and Access Management - // (IAM) role that Amazon S3 can assume when replicating the objects. + // (IAM) role that Amazon S3 assumes when replicating objects. For more information, + // see How to Set Up Cross-Region Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-how-setup.html) + // in the Amazon Simple Storage Service Developer Guide. // // Role is a required field Role *string `type:"string" required:"true"` @@ -21486,7 +21603,7 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo return s } -// A container for information about a specific replication rule. +// Specifies which Amazon S3 objects to replicate and where to store the replicas. type ReplicationRule struct { _ struct{} `type:"structure"` @@ -21506,7 +21623,8 @@ type ReplicationRule struct { ID *string `type:"string"` // An object keyname prefix that identifies the object or objects to which the - // rule applies. The maximum prefix length is 1,024 characters. + // rule applies. The maximum prefix length is 1,024 characters. To include all + // objects in a bucket, specify an empty string. // // Deprecated: Prefix has been deprecated Prefix *string `deprecated:"true" type:"string"` @@ -21522,7 +21640,7 @@ type ReplicationRule struct { // * Same object qualify tag based filter criteria specified in multiple // rules // - // For more information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) + // For more information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) // in the Amazon S3 Developer Guide. Priority *int64 `type:"integer"` @@ -21531,12 +21649,9 @@ type ReplicationRule struct { // replication of these objects. Currently, Amazon S3 supports only the filter // that you can specify for objects created with server-side encryption using // an AWS KMS-Managed Key (SSE-KMS). - // - // If you want Amazon S3 to replicate objects created with server-side encryption - // using AWS KMS-Managed Keys. SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"` - // If status isn't enabled, the rule is ignored. + // Specifies whether the rule is enabled. // // Status is a required field Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"` @@ -22051,6 +22166,7 @@ func (s *RestoreRequest) SetType(v string) *RestoreRequest { return s } +// Specifies the redirect behavior and when a redirect is applied. type RoutingRule struct { _ struct{} `type:"structure"` @@ -22103,16 +22219,22 @@ func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule { return s } +// Specifies lifecycle rules for an Amazon S3 bucket. For more information, +// see PUT Bucket lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) +// in the Amazon Simple Storage Service API Reference. type Rule struct { _ struct{} `type:"structure"` - // Specifies the days since the initiation of an Incomplete Multipart Upload - // that Lifecycle will wait before permanently removing all parts of the upload. + // Specifies the days since the initiation of an incomplete multipart upload + // that Amazon S3 will wait before permanently removing all parts of the upload. + // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket + // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + // in the Amazon Simple Storage Service Developer Guide. AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` Expiration *LifecycleExpiration `type:"structure"` - // Unique identifier for the rule. The value cannot be longer than 255 characters. + // Unique identifier for the rule. The value can't be longer than 255 characters. ID *string `type:"string"` // Specifies when noncurrent object versions expire. Upon expiration, Amazon @@ -22123,25 +22245,27 @@ type Rule struct { NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` // Container for the transition rule that describes when noncurrent objects - // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or - // DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning + // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, + // or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning // is suspended), you can set this action to request that Amazon S3 transition // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, - // GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's + // GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's // lifetime. NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"` - // Prefix identifying one or more objects to which the rule applies. + // Object key prefix that identifies one or more objects to which this rule + // applies. // // Prefix is a required field Prefix *string `type:"string" required:"true"` - // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule - // is not currently being applied. + // If Enabled, the rule is currently being applied. If Disabled, the rule is + // not currently being applied. // // Status is a required field Status *string `type:"string" required:"true" enum:"ExpirationStatus"` + // Specifies when an object transitions to a specified storage class. Transition *Transition `type:"structure"` } @@ -22537,15 +22661,15 @@ type SelectObjectContentInput struct { // Specifies if periodic request progress information should be enabled. RequestProgress *RequestProgress `type:"structure"` - // The SSE Algorithm used to encrypt the object. For more information, see - // Server-Side Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). + // The SSE Algorithm used to encrypt the object. For more information, see Server-Side + // Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` - // The SSE Customer Key. For more information, see Server-Side Encryption (Using + // The SSE Customer Key. For more information, see Server-Side Encryption (Using // Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` - // The SSE Customer Key MD5. For more information, see Server-Side Encryption + // The SSE Customer Key MD5. For more information, see Server-Side Encryption // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` } @@ -22792,13 +22916,15 @@ func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *Selec } // Describes the default server-side encryption to apply to new objects in the -// bucket. If Put Object request does not specify any server-side encryption, -// this default encryption will be applied. +// bucket. If a PUT Object request doesn't specify any server-side encryption, +// this default encryption will be applied. For more information, see PUT Bucket +// encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) +// in the Amazon Simple Storage Service API Reference. type ServerSideEncryptionByDefault struct { _ struct{} `type:"structure"` // KMS master key ID to use for the default encryption. This parameter is allowed - // if SSEAlgorithm is aws:kms. + // if and only if SSEAlgorithm is set to aws:kms. KMSMasterKeyID *string `type:"string" sensitive:"true"` // Server-side encryption algorithm to use for the default encryption. @@ -22842,8 +22968,7 @@ func (s *ServerSideEncryptionByDefault) SetSSEAlgorithm(v string) *ServerSideEnc return s } -// Container for server-side encryption configuration rules. Currently S3 supports -// one rule only. +// Specifies the default server-side-encryption configuration. type ServerSideEncryptionConfiguration struct { _ struct{} `type:"structure"` @@ -22893,13 +23018,12 @@ func (s *ServerSideEncryptionConfiguration) SetRules(v []*ServerSideEncryptionRu return s } -// Container for information about a particular server-side encryption configuration -// rule. +// Specifies the default server-side encryption configuration. type ServerSideEncryptionRule struct { _ struct{} `type:"structure"` - // Describes the default server-side encryption to apply to new objects in the - // bucket. If Put Object request does not specify any server-side encryption, + // Specifies the default server-side encryption to apply to new objects in the + // bucket. If a PUT Object request doesn't specify any server-side encryption, // this default encryption will be applied. ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault `type:"structure"` } @@ -22935,13 +23059,17 @@ func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *Serv return s } -// A container for filters that define which source objects should be replicated. +// A container that describes additional filters for identifying the source +// objects that you want to replicate. You can choose to enable or disable the +// replication of these objects. Currently, Amazon S3 supports only the filter +// that you can specify for objects created with server-side encryption using +// an AWS KMS-Managed Key (SSE-KMS). type SourceSelectionCriteria struct { _ struct{} `type:"structure"` - // A container for filter information for the selection of S3 objects encrypted - // with AWS KMS. If you include SourceSelectionCriteria in the replication configuration, - // this element is required. + // A container for filter information for the selection of Amazon S3 objects + // encrypted with AWS KMS. If you include SourceSelectionCriteria in the replication + // configuration, this element is required. SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"` } @@ -22981,8 +23109,8 @@ func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedOb type SseKmsEncryptedObjects struct { _ struct{} `type:"structure"` - // If the status is not Enabled, replication for S3 objects encrypted with AWS - // KMS is disabled. + // Specifies whether Amazon S3 replicates objects created with server-side encryption + // using an AWS KMS-managed key. // // Status is a required field Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"` @@ -23098,11 +23226,14 @@ func (s *StatsEvent) UnmarshalEvent( return nil } +// Specifies data related to access patterns to be collected and made available +// to analyze the tradeoffs between different storage classes for an Amazon +// S3 bucket. type StorageClassAnalysis struct { _ struct{} `type:"structure"` - // A container used to describe how data related to the storage class analysis - // should be exported. + // Specifies how data related to the storage class analysis for an Amazon S3 + // bucket should be exported. DataExport *StorageClassAnalysisDataExport `type:"structure"` } @@ -23342,16 +23473,20 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant { } // A container for specifying the configuration for publication of messages -// to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3 +// to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 // detects specified events. type TopicConfiguration struct { _ struct{} `type:"structure"` + // The Amazon S3 bucket event about which to send notifications. For more information, + // see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Events is a required field Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` - // A container for object key name filtering rules. For information about key - // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) + // Specifies object key name filtering rules. For information about key name + // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) // in the Amazon Simple Storage Service Developer Guide. Filter *NotificationConfigurationFilter `type:"structure"` @@ -23360,7 +23495,7 @@ type TopicConfiguration struct { Id *string `type:"string"` // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 - // will publish a message when it detects events of the specified type. + // publishes a message when it detects events of the specified type. // // TopicArn is a required field TopicArn *string `locationName:"Topic" type:"string" required:"true"` @@ -23469,18 +23604,19 @@ func (s *TopicConfigurationDeprecated) SetTopic(v string) *TopicConfigurationDep return s } +// Specifies when an object transitions to a specified storage class. type Transition struct { _ struct{} `type:"structure"` - // Indicates at what date the object is to be moved or deleted. Should be in - // GMT ISO 8601 Format. + // Indicates when objects are transitioned to the specified storage class. The + // date value must be in ISO 8601 format. The time is always midnight UTC. Date *time.Time `type:"timestamp" timestampFormat:"iso8601"` - // Indicates the lifetime, in days, of the objects that are subject to the rule. - // The value must be a non-zero positive integer. + // Indicates the number of days after creation when objects are transitioned + // to the specified storage class. The value must be a positive integer. Days *int64 `type:"integer"` - // The class of storage used to store the object. + // The storage class to which you want the object to transition. StorageClass *string `type:"string" enum:"TransitionStorageClass"` } @@ -23550,7 +23686,7 @@ type UploadPartCopyInput struct { // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt // the source object. The encryption key provided in this header must be one // that was used when the source object was created. - CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` + CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -23581,7 +23717,7 @@ type UploadPartCopyInput struct { // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -23857,7 +23993,9 @@ type UploadPartInput struct { // body cannot be determined automatically. ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` - // The base64-encoded 128-bit MD5 digest of the part data. + // The base64-encoded 128-bit MD5 digest of the part data. This parameter is + // auto-populated when using the command from the CLI. This parameted is required + // if object lock parameters are specified. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` // Object key for which the multipart upload was initiated. @@ -23886,7 +24024,7 @@ type UploadPartInput struct { // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. This must be the same encryption key specified in the initiate multipart // upload request. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption @@ -24092,6 +24230,9 @@ func (s *UploadPartOutput) SetServerSideEncryption(v string) *UploadPartOutput { return s } +// Describes the versioning state of an Amazon S3 bucket. For more information, +// see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) +// in the Amazon Simple Storage Service API Reference. type VersioningConfiguration struct { _ struct{} `type:"structure"` @@ -24126,15 +24267,22 @@ func (s *VersioningConfiguration) SetStatus(v string) *VersioningConfiguration { return s } +// Specifies website configuration parameters for an Amazon S3 bucket. type WebsiteConfiguration struct { _ struct{} `type:"structure"` + // The name of the error document for the website. ErrorDocument *ErrorDocument `type:"structure"` + // The name of the index document for the website. IndexDocument *IndexDocument `type:"structure"` + // The redirect behavior for every request to this bucket's website endpoint. + // + // If you specify this property, you can't specify any other property. RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` + // Rules that define when a redirect is applied and the redirect behavior. RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go index bc68a46ac..9ba8a7887 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go @@ -80,7 +80,8 @@ func buildGetBucketLocation(r *request.Request) { out := r.Data.(*GetBucketLocationOutput) b, err := ioutil.ReadAll(r.HTTPResponse.Body) if err != nil { - r.Error = awserr.New("SerializationError", "failed reading response body", err) + r.Error = awserr.New(request.ErrCodeSerialization, + "failed reading response body", err) return } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go index 95f245636..23d386b16 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go @@ -17,7 +17,8 @@ func defaultInitClientFn(c *client.Client) { // Require SSL when using SSE keys c.Handlers.Validate.PushBack(validateSSERequiresSSL) - c.Handlers.Build.PushBack(computeSSEKeys) + c.Handlers.Build.PushBack(computeSSEKeyMD5) + c.Handlers.Build.PushBack(computeCopySourceSSEKeyMD5) // S3 uses custom error unmarshaling logic c.Handlers.UnmarshalError.Clear() diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/batch.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/batch.go index 18215574b..22bd0b7ce 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/batch.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/batch.go @@ -273,7 +273,7 @@ type DeleteObjectsIterator struct { inc bool } -// Next will increment the default iterator's index and and ensure that there +// Next will increment the default iterator's index and ensure that there // is another object to iterator to. func (iter *DeleteObjectsIterator) Next() bool { if iter.inc { @@ -458,7 +458,7 @@ type DownloadObjectsIterator struct { inc bool } -// Next will increment the default iterator's index and and ensure that there +// Next will increment the default iterator's index and ensure that there // is another object to iterator to. func (batcher *DownloadObjectsIterator) Next() bool { if batcher.inc { @@ -497,7 +497,7 @@ type UploadObjectsIterator struct { inc bool } -// Next will increment the default iterator's index and and ensure that there +// Next will increment the default iterator's index and ensure that there // is another object to iterator to. func (batcher *UploadObjectsIterator) Next() bool { if batcher.inc { diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go index da1838c9d..94f35b2b1 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload.go @@ -145,8 +145,13 @@ type Uploader struct { // MaxUploadParts is the max number of parts which will be uploaded to S3. // Will be used to calculate the partsize of the object to be uploaded. // E.g: 5GB file, with MaxUploadParts set to 100, will upload the file - // as 100, 50MB parts. - // With a limited of s3.MaxUploadParts (10,000 parts). + // as 100, 50MB parts. With a limited of s3.MaxUploadParts (10,000 parts). + // + // MaxUploadParts must not be used to limit the total number of bytes uploaded. + // Use a type like to io.LimitReader (https://golang.org/pkg/io/#LimitedReader) + // instead. An io.LimitReader is helpful when uploading an unbounded reader + // to S3, and you know its maximum size. Otherwise the reader's io.EOF returned + // error must be used to signal end of stream. // // Defaults to package const's MaxUploadParts value. MaxUploadParts int @@ -542,21 +547,6 @@ func (u *multiuploader) upload(firstBuf io.ReadSeeker, firstPart []byte) (*Uploa // Read and queue the rest of the parts for u.geterr() == nil && err == nil { - num++ - // This upload exceeded maximum number of supported parts, error now. - if num > int64(u.cfg.MaxUploadParts) || num > int64(MaxUploadParts) { - var msg string - if num > int64(u.cfg.MaxUploadParts) { - msg = fmt.Sprintf("exceeded total allowed configured MaxUploadParts (%d). Adjust PartSize to fit in this limit", - u.cfg.MaxUploadParts) - } else { - msg = fmt.Sprintf("exceeded total allowed S3 limit MaxUploadParts (%d). Adjust PartSize to fit in this limit", - MaxUploadParts) - } - u.seterr(awserr.New("TotalPartsExceeded", msg, nil)) - break - } - var reader io.ReadSeeker var nextChunkLen int var part []byte @@ -577,6 +567,21 @@ func (u *multiuploader) upload(firstBuf io.ReadSeeker, firstPart []byte) (*Uploa break } + num++ + // This upload exceeded maximum number of supported parts, error now. + if num > int64(u.cfg.MaxUploadParts) || num > int64(MaxUploadParts) { + var msg string + if num > int64(u.cfg.MaxUploadParts) { + msg = fmt.Sprintf("exceeded total allowed configured MaxUploadParts (%d). Adjust PartSize to fit in this limit", + u.cfg.MaxUploadParts) + } else { + msg = fmt.Sprintf("exceeded total allowed S3 limit MaxUploadParts (%d). Adjust PartSize to fit in this limit", + MaxUploadParts) + } + u.seterr(awserr.New("TotalPartsExceeded", msg, nil)) + break + } + ch <- chunk{buf: reader, part: part, num: num} } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go index f8ce34fa3..4c1d8314d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go @@ -40,7 +40,8 @@ type UploadInput struct { ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` // The base64-encoded 128-bit MD5 digest of the part data. This parameter is - // auto-populated when using the command from the CLI + // auto-populated when using the command from the CLI. This parameted is required + // if object lock parameters are specified. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` // A standard MIME type describing the format of the object data. @@ -72,10 +73,10 @@ type UploadInput struct { // The Legal Hold status that you want to apply to the specified object. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode that you want to apply to this object. + // The object lock mode that you want to apply to this object. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when you want this object's Object Lock to expire. + // The date and time when you want this object's object lock to expire. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that she or he will be charged for the @@ -92,7 +93,7 @@ type UploadInput struct { // does not store the encryption key. The key must be appropriate for use with // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm // header. - SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` + SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure the encryption diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go b/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go index 8010c4fa1..b71c835de 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go @@ -3,6 +3,7 @@ package s3 import ( "crypto/md5" "encoding/base64" + "net/http" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" @@ -30,25 +31,54 @@ func validateSSERequiresSSL(r *request.Request) { } } -func computeSSEKeys(r *request.Request) { - headers := []string{ - "x-amz-server-side-encryption-customer-key", - "x-amz-copy-source-server-side-encryption-customer-key", +const ( + sseKeyHeader = "x-amz-server-side-encryption-customer-key" + sseKeyMD5Header = sseKeyHeader + "-md5" +) + +func computeSSEKeyMD5(r *request.Request) { + var key string + if g, ok := r.Params.(sseCustomerKeyGetter); ok { + key = g.getSSECustomerKey() } - for _, h := range headers { - md5h := h + "-md5" - if key := r.HTTPRequest.Header.Get(h); key != "" { - // Base64-encode the value - b64v := base64.StdEncoding.EncodeToString([]byte(key)) - r.HTTPRequest.Header.Set(h, b64v) + computeKeyMD5(sseKeyHeader, sseKeyMD5Header, key, r.HTTPRequest) +} - // Add MD5 if it wasn't computed - if r.HTTPRequest.Header.Get(md5h) == "" { - sum := md5.Sum([]byte(key)) - b64sum := base64.StdEncoding.EncodeToString(sum[:]) - r.HTTPRequest.Header.Set(md5h, b64sum) - } +const ( + copySrcSSEKeyHeader = "x-amz-copy-source-server-side-encryption-customer-key" + copySrcSSEKeyMD5Header = copySrcSSEKeyHeader + "-md5" +) + +func computeCopySourceSSEKeyMD5(r *request.Request) { + var key string + if g, ok := r.Params.(copySourceSSECustomerKeyGetter); ok { + key = g.getCopySourceSSECustomerKey() + } + + computeKeyMD5(copySrcSSEKeyHeader, copySrcSSEKeyMD5Header, key, r.HTTPRequest) +} + +func computeKeyMD5(keyHeader, keyMD5Header, key string, r *http.Request) { + if len(key) == 0 { + // Backwards compatiablity where user just set the header value instead + // of using the API parameter, or setting the header value for an + // operation without the parameters modeled. + key = r.Header.Get(keyHeader) + if len(key) == 0 { + return } + + // In backwards compatiable, the header's value is not base64 encoded, + // and needs to be encoded and updated by the SDK's customizations. + b64Key := base64.StdEncoding.EncodeToString([]byte(key)) + r.Header.Set(keyHeader, b64Key) + } + + // Only update Key's MD5 if not already set. + if len(r.Header.Get(keyMD5Header)) == 0 { + sum := md5.Sum([]byte(key)) + keyMD5 := base64.StdEncoding.EncodeToString(sum[:]) + r.Header.Set(keyMD5Header, keyMD5) } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go index fde3050f9..f6a69aed1 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go @@ -14,7 +14,7 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) { b, err := ioutil.ReadAll(r.HTTPResponse.Body) if err != nil { r.Error = awserr.NewRequestFailure( - awserr.New("SerializationError", "unable to read response body", err), + awserr.New(request.ErrCodeSerialization, "unable to read response body", err), r.HTTPResponse.StatusCode, r.RequestID, ) @@ -31,7 +31,7 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) { unmarshalError(r) if err, ok := r.Error.(awserr.Error); ok && err != nil { - if err.Code() == "SerializationError" { + if err.Code() == request.ErrCodeSerialization { r.Error = nil return } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go index 1db7e133b..5b63fac72 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go @@ -11,6 +11,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" ) type xmlErrorResponse struct { @@ -42,29 +43,34 @@ func unmarshalError(r *request.Request) { return } - var errCode, errMsg string - // Attempt to parse error from body if it is known - resp := &xmlErrorResponse{} - err := xml.NewDecoder(r.HTTPResponse.Body).Decode(resp) - if err != nil && err != io.EOF { - errCode = "SerializationError" - errMsg = "failed to decode S3 XML error response" - } else { - errCode = resp.Code - errMsg = resp.Message + var errResp xmlErrorResponse + err := xmlutil.UnmarshalXMLError(&errResp, r.HTTPResponse.Body) + if err == io.EOF { + // Only capture the error if an unmarshal error occurs that is not EOF, + // because S3 might send an error without a error message which causes + // the XML unmarshal to fail with EOF. err = nil } + if err != nil { + r.Error = awserr.NewRequestFailure( + awserr.New(request.ErrCodeSerialization, + "failed to unmarshal error message", err), + r.HTTPResponse.StatusCode, + r.RequestID, + ) + return + } // Fallback to status code converted to message if still no error code - if len(errCode) == 0 { + if len(errResp.Code) == 0 { statusText := http.StatusText(r.HTTPResponse.StatusCode) - errCode = strings.Replace(statusText, " ", "", -1) - errMsg = statusText + errResp.Code = strings.Replace(statusText, " ", "", -1) + errResp.Message = statusText } r.Error = awserr.NewRequestFailure( - awserr.New(errCode, errMsg, err), + awserr.New(errResp.Code, errResp.Message, err), r.HTTPResponse.StatusCode, r.RequestID, ) diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go index 811308964..9e610591a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go @@ -3,6 +3,7 @@ package sts import ( + "fmt" "time" "github.com/aws/aws-sdk-go/aws" @@ -55,38 +56,26 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o // AssumeRole API operation for AWS Security Token Service. // -// Returns a set of temporary security credentials (consisting of an access -// key ID, a secret access key, and a security token) that you can use to access -// AWS resources that you might not normally have access to. Typically, you -// use AssumeRole for cross-account access or federation. For a comparison of -// AssumeRole with the other APIs that produce temporary credentials, see Requesting -// Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) +// Returns a set of temporary security credentials that you can use to access +// AWS resources that you might not normally have access to. These temporary +// credentials consist of an access key ID, a secret access key, and a security +// token. Typically, you use AssumeRole within your account or for cross-account +// access. For a comparison of AssumeRole with other API operations that produce +// temporary credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) +// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // -// Important: You cannot call AssumeRole by using AWS root account credentials; -// access is denied. You must use credentials for an IAM user or an IAM role -// to call AssumeRole. +// You cannot use AWS account root user credentials to call AssumeRole. You +// must use credentials for an IAM user or an IAM role to call AssumeRole. // // For cross-account access, imagine that you own multiple accounts and need // to access resources in each account. You could create long-term credentials // in each account to access those resources. However, managing all those credentials // and remembering which one can access which account can be time consuming. -// Instead, you can create one set of long-term credentials in one account and -// then use temporary security credentials to access all the other accounts +// Instead, you can create one set of long-term credentials in one account. +// Then use temporary security credentials to access all the other accounts // by assuming roles in those accounts. For more information about roles, see -// IAM Roles (Delegation and Federation) (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) -// in the IAM User Guide. -// -// For federation, you can, for example, grant single sign-on access to the -// AWS Management Console. If you already have an identity and authentication -// system in your corporate network, you don't have to recreate user identities -// in AWS in order to grant those user identities access to AWS. Instead, after -// a user has been authenticated, you call AssumeRole (and specify the role -// with the appropriate permissions) to get temporary security credentials for -// that user. With those temporary security credentials, you construct a sign-in -// URL that users can use to access the console. For more information, see Common -// Scenarios for Temporary Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction) +// IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) // in the IAM User Guide. // // By default, the temporary security credentials created by AssumeRole last @@ -95,69 +84,73 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o // seconds (15 minutes) up to the maximum session duration setting for the role. // This setting can have a value from 1 hour to 12 hours. To learn how to view // the maximum value for your role, see View the Maximum Session Duration Setting -// for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) +// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI operations but -// does not apply when you use those operations to create a console URL. For -// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) +// use the AssumeRole* API operations or the assume-role* CLI commands. However +// the limit does not apply when you use those operations to create a console +// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // // The temporary security credentials created by AssumeRole can be used to make -// API calls to any AWS service with the following exception: you cannot call -// the STS service's GetFederationToken or GetSessionToken APIs. +// API calls to any AWS service with the following exception: You cannot call +// the AWS STS GetFederationToken or GetSessionToken API operations. // -// Optionally, you can pass an IAM access policy to this operation. If you choose -// not to pass a policy, the temporary security credentials that are returned -// by the operation have the permissions that are defined in the access policy -// of the role that is being assumed. If you pass a policy to this operation, -// the temporary security credentials that are returned by the operation have -// the permissions that are allowed by both the access policy of the role that -// is being assumed, and the policy that you pass. This gives you a way to further -// restrict the permissions for the resulting temporary security credentials. -// You cannot use the passed policy to grant permissions that are in excess -// of those allowed by the access policy of the role that is being assumed. -// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML, -// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) +// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// to this operation. You can pass a single JSON policy document to use as an +// inline session policy. You can also specify up to 10 managed policies to +// use as managed session policies. The plain text that you use for both inline +// and managed session policies shouldn't exceed 2048 characters. Passing policies +// to this operation returns new temporary credentials. The resulting session's +// permissions are the intersection of the role's identity-based policy and +// the session policies. You can use the role's temporary credentials in subsequent +// AWS API calls to access resources in the account that owns the role. You +// cannot use session policies to grant more permissions than those allowed +// by the identity-based policy of the role that is being assumed. For more +// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // -// To assume a role, your AWS account must be trusted by the role. The trust -// relationship is defined in the role's trust policy when the role is created. -// That trust policy states which accounts are allowed to delegate access to -// this account's role. +// To assume a role from a different account, your AWS account must be trusted +// by the role. The trust relationship is defined in the role's trust policy +// when the role is created. That trust policy states which accounts are allowed +// to delegate that access to users in the account. // -// The user who wants to access the role must also have permissions delegated -// from the role's administrator. If the user is in a different account than -// the role, then the user's administrator must attach a policy that allows -// the user to call AssumeRole on the ARN of the role in the other account. -// If the user is in the same account as the role, then you can either attach -// a policy to the user (identical to the previous different account user), -// or you can add the user as a principal directly in the role's trust policy. -// In this case, the trust policy acts as the only resource-based policy in -// IAM, and users in the same account as the role do not need explicit permission -// to assume the role. For more information about trust policies and resource-based -// policies, see IAM Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) +// A user who wants to access a role in a different account must also have permissions +// that are delegated from the user account administrator. The administrator +// must attach a policy that allows the user to call AssumeRole for the ARN +// of the role in the other account. If the user is in the same account as the +// role, then you can do either of the following: +// +// * Attach a policy to the user (identical to the previous user in a different +// account). +// +// * Add the user as a principal directly in the role's trust policy. +// +// In this case, the trust policy acts as an IAM resource-based policy. Users +// in the same account as the role do not need explicit permission to assume +// the role. For more information about trust policies and resource-based policies, +// see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) // in the IAM User Guide. // // Using MFA with AssumeRole // -// You can optionally include multi-factor authentication (MFA) information -// when you call AssumeRole. This is useful for cross-account scenarios in which -// you want to make sure that the user who is assuming the role has been authenticated -// using an AWS MFA device. In that scenario, the trust policy of the role being -// assumed includes a condition that tests for MFA authentication; if the caller -// does not include valid MFA information, the request to assume the role is -// denied. The condition in a trust policy that tests for MFA authentication -// might look like the following example. +// (Optional) You can include multi-factor authentication (MFA) information +// when you call AssumeRole. This is useful for cross-account scenarios to ensure +// that the user that assumes the role has been authenticated with an AWS MFA +// device. In that scenario, the trust policy of the role being assumed includes +// a condition that tests for MFA authentication. If the caller does not include +// valid MFA information, the request to assume the role is denied. The condition +// in a trust policy that tests for MFA authentication might look like the following +// example. // // "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}} // -// For more information, see Configuring MFA-Protected API Access (http://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html) +// For more information, see Configuring MFA-Protected API Access (https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html) // in the IAM User Guide guide. // // To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode // parameters. The SerialNumber value identifies the user's hardware or virtual // MFA device. The TokenCode is the time-based one-time password (TOTP) that -// the MFA devices produces. +// the MFA device produces. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -180,7 +173,7 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole @@ -254,9 +247,9 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re // via a SAML authentication response. This operation provides a mechanism for // tying an enterprise identity store or directory to role-based AWS access // without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML -// with the other APIs that produce temporary credentials, see Requesting Temporary -// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) +// with the other API operations that produce temporary credentials, see Requesting +// Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) +// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // // The temporary security credentials returned by this operation consist of @@ -271,37 +264,36 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re // a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session // duration setting for the role. This setting can have a value from 1 hour // to 12 hours. To learn how to view the maximum value for your role, see View -// the Maximum Session Duration Setting for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) +// the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI operations but -// does not apply when you use those operations to create a console URL. For -// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) +// use the AssumeRole* API operations or the assume-role* CLI commands. However +// the limit does not apply when you use those operations to create a console +// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // // The temporary security credentials created by AssumeRoleWithSAML can be used // to make API calls to any AWS service with the following exception: you cannot -// call the STS service's GetFederationToken or GetSessionToken APIs. +// call the STS GetFederationToken or GetSessionToken API operations. // -// Optionally, you can pass an IAM access policy to this operation. If you choose -// not to pass a policy, the temporary security credentials that are returned -// by the operation have the permissions that are defined in the access policy -// of the role that is being assumed. If you pass a policy to this operation, -// the temporary security credentials that are returned by the operation have -// the permissions that are allowed by the intersection of both the access policy -// of the role that is being assumed, and the policy that you pass. This means -// that both policies must grant the permission for the action to be allowed. -// This gives you a way to further restrict the permissions for the resulting -// temporary security credentials. You cannot use the passed policy to grant -// permissions that are in excess of those allowed by the access policy of the -// role that is being assumed. For more information, see Permissions for AssumeRole, -// AssumeRoleWithSAML, and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) +// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// to this operation. You can pass a single JSON policy document to use as an +// inline session policy. You can also specify up to 10 managed policies to +// use as managed session policies. The plain text that you use for both inline +// and managed session policies shouldn't exceed 2048 characters. Passing policies +// to this operation returns new temporary credentials. The resulting session's +// permissions are the intersection of the role's identity-based policy and +// the session policies. You can use the role's temporary credentials in subsequent +// AWS API calls to access resources in the account that owns the role. You +// cannot use session policies to grant more permissions than those allowed +// by the identity-based policy of the role that is being assumed. For more +// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // // Before your application can call AssumeRoleWithSAML, you must configure your // SAML identity provider (IdP) to issue the claims required by AWS. Additionally, // you must use AWS Identity and Access Management (IAM) to create a SAML provider -// entity in your AWS account that represents your identity provider, and create -// an IAM role that specifies this SAML provider in its trust policy. +// entity in your AWS account that represents your identity provider. You must +// also create an IAM role that specifies this SAML provider in its trust policy. // // Calling AssumeRoleWithSAML does not require the use of AWS security credentials. // The identity of the caller is validated by using keys in the metadata document @@ -315,16 +307,16 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re // // For more information, see the following resources: // -// * About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) +// * About SAML 2.0-based Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) // in the IAM User Guide. // -// * Creating SAML Identity Providers (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) +// * Creating SAML Identity Providers (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) // in the IAM User Guide. // -// * Configuring a Relying Party and Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) +// * Configuring a Relying Party and Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) // in the IAM User Guide. // -// * Creating a Role for SAML 2.0 Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html) +// * Creating a Role for SAML 2.0 Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html) // in the IAM User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -363,7 +355,7 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML @@ -434,35 +426,35 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI // AssumeRoleWithWebIdentity API operation for AWS Security Token Service. // // Returns a set of temporary security credentials for users who have been authenticated -// in a mobile or web application with a web identity provider, such as Amazon -// Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible -// identity provider. +// in a mobile or web application with a web identity provider. Example providers +// include Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID +// Connect-compatible identity provider. // // For mobile applications, we recommend that you use Amazon Cognito. You can -// use Amazon Cognito with the AWS SDK for iOS (http://aws.amazon.com/sdkforios/) -// and the AWS SDK for Android (http://aws.amazon.com/sdkforandroid/) to uniquely -// identify a user and supply the user with a consistent identity throughout -// the lifetime of an application. +// use Amazon Cognito with the AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) +// and the AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/) +// to uniquely identify a user. You can also supply the user with a consistent +// identity throughout the lifetime of an application. // -// To learn more about Amazon Cognito, see Amazon Cognito Overview (http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840) -// in the AWS SDK for Android Developer Guide guide and Amazon Cognito Overview -// (http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664) +// To learn more about Amazon Cognito, see Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840) +// in AWS SDK for Android Developer Guide and Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664) // in the AWS SDK for iOS Developer Guide. // // Calling AssumeRoleWithWebIdentity does not require the use of AWS security // credentials. Therefore, you can distribute an application (for example, on // mobile devices) that requests temporary security credentials without including -// long-term AWS credentials in the application, and without deploying server-based -// proxy services that use long-term AWS credentials. Instead, the identity -// of the caller is validated by using a token from the web identity provider. -// For a comparison of AssumeRoleWithWebIdentity with the other APIs that produce -// temporary credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) +// long-term AWS credentials in the application. You also don't need to deploy +// server-based proxy services that use long-term AWS credentials. Instead, +// the identity of the caller is validated by using a token from the web identity +// provider. For a comparison of AssumeRoleWithWebIdentity with the other API +// operations that produce temporary credentials, see Requesting Temporary Security +// Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) +// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // // The temporary security credentials returned by this API consist of an access // key ID, a secret access key, and a security token. Applications can use these -// temporary security credentials to sign calls to AWS service APIs. +// temporary security credentials to sign calls to AWS service API operations. // // By default, the temporary security credentials created by AssumeRoleWithWebIdentity // last for one hour. However, you can use the optional DurationSeconds parameter @@ -470,29 +462,29 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI // seconds (15 minutes) up to the maximum session duration setting for the role. // This setting can have a value from 1 hour to 12 hours. To learn how to view // the maximum value for your role, see View the Maximum Session Duration Setting -// for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) +// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. The maximum session duration limit applies when you -// use the AssumeRole* API operations or the assume-role* CLI operations but -// does not apply when you use those operations to create a console URL. For -// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) +// use the AssumeRole* API operations or the assume-role* CLI commands. However +// the limit does not apply when you use those operations to create a console +// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) // in the IAM User Guide. // // The temporary security credentials created by AssumeRoleWithWebIdentity can // be used to make API calls to any AWS service with the following exception: -// you cannot call the STS service's GetFederationToken or GetSessionToken APIs. +// you cannot call the STS GetFederationToken or GetSessionToken API operations. // -// Optionally, you can pass an IAM access policy to this operation. If you choose -// not to pass a policy, the temporary security credentials that are returned -// by the operation have the permissions that are defined in the access policy -// of the role that is being assumed. If you pass a policy to this operation, -// the temporary security credentials that are returned by the operation have -// the permissions that are allowed by both the access policy of the role that -// is being assumed, and the policy that you pass. This gives you a way to further -// restrict the permissions for the resulting temporary security credentials. -// You cannot use the passed policy to grant permissions that are in excess -// of those allowed by the access policy of the role that is being assumed. -// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML, -// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) +// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// to this operation. You can pass a single JSON policy document to use as an +// inline session policy. You can also specify up to 10 managed policies to +// use as managed session policies. The plain text that you use for both inline +// and managed session policies shouldn't exceed 2048 characters. Passing policies +// to this operation returns new temporary credentials. The resulting session's +// permissions are the intersection of the role's identity-based policy and +// the session policies. You can use the role's temporary credentials in subsequent +// AWS API calls to access resources in the account that owns the role. You +// cannot use session policies to grant more permissions than those allowed +// by the identity-based policy of the role that is being assumed. For more +// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // // Before your application can call AssumeRoleWithWebIdentity, you must have @@ -511,21 +503,19 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI // For more information about how to use web identity federation and the AssumeRoleWithWebIdentity // API, see the following resources: // -// * Using Web Identity Federation APIs for Mobile Apps (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html) -// and Federation Through a Web-based Identity Provider (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). +// * Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html) +// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). // +// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html). +// Walk through the process of authenticating through Login with Amazon, +// Facebook, or Google, getting temporary security credentials, and then +// using those credentials to make a request to AWS. // -// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html). -// This interactive website lets you walk through the process of authenticating -// via Login with Amazon, Facebook, or Google, getting temporary security -// credentials, and then using those credentials to make a request to AWS. -// -// -// * AWS SDK for iOS (http://aws.amazon.com/sdkforios/) and AWS SDK for Android -// (http://aws.amazon.com/sdkforandroid/). These toolkits contain sample -// apps that show how to invoke the identity providers, and then how to use -// the information from these providers to get and use temporary security -// credentials. +// * AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) and +// AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/). +// These toolkits contain sample apps that show how to invoke the identity +// providers, and then how to use the information from these providers to +// get and use temporary security credentials. // // * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications). // This article discusses web identity federation and shows an example of @@ -575,7 +565,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity @@ -647,17 +637,17 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag // Decodes additional information about the authorization status of a request // from an encoded message returned in response to an AWS request. // -// For example, if a user is not authorized to perform an action that he or -// she has requested, the request returns a Client.UnauthorizedOperation response -// (an HTTP 403 response). Some AWS actions additionally return an encoded message -// that can provide details about this authorization failure. +// For example, if a user is not authorized to perform an operation that he +// or she has requested, the request returns a Client.UnauthorizedOperation +// response (an HTTP 403 response). Some AWS operations additionally return +// an encoded message that can provide details about this authorization failure. // -// Only certain AWS actions return an encoded authorization message. The documentation -// for an individual action indicates whether that action returns an encoded -// message in addition to returning an HTTP code. +// Only certain AWS operations return an encoded authorization message. The +// documentation for an individual operation indicates whether that operation +// returns an encoded message in addition to returning an HTTP code. // // The message is encoded because the details of the authorization status can -// constitute privileged information that the user who requested the action +// constitute privileged information that the user who requested the operation // should not see. To decode an authorization status message, a user must be // granted permissions via an IAM policy to request the DecodeAuthorizationMessage // (sts:DecodeAuthorizationMessage) action. @@ -666,7 +656,7 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag // // * Whether the request was denied due to an explicit deny or due to the // absence of an explicit allow. For more information, see Determining Whether -// a Request is Allowed or Denied (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) +// a Request is Allowed or Denied (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) // in the IAM User Guide. // // * The principal who made the request. @@ -834,81 +824,65 @@ func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *re // Returns a set of temporary security credentials (consisting of an access // key ID, a secret access key, and a security token) for a federated user. // A typical use is in a proxy application that gets temporary security credentials -// on behalf of distributed applications inside a corporate network. Because -// you must call the GetFederationToken action using the long-term security -// credentials of an IAM user, this call is appropriate in contexts where those +// on behalf of distributed applications inside a corporate network. You must +// call the GetFederationToken operation using the long-term security credentials +// of an IAM user. As a result, this call is appropriate in contexts where those // credentials can be safely stored, usually in a server-based application. -// For a comparison of GetFederationToken with the other APIs that produce temporary -// credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) +// For a comparison of GetFederationToken with the other API operations that +// produce temporary credentials, see Requesting Temporary Security Credentials +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) +// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // -// If you are creating a mobile-based or browser-based app that can authenticate +// You can create a mobile-based or browser-based app that can authenticate // users using a web identity provider like Login with Amazon, Facebook, Google, -// or an OpenID Connect-compatible identity provider, we recommend that you -// use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity. +// or an OpenID Connect-compatible identity provider. In this case, we recommend +// that you use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity. // For more information, see Federation Through a Web-based Identity Provider -// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). +// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). // -// The GetFederationToken action must be called by using the long-term AWS security -// credentials of an IAM user. You can also call GetFederationToken using the -// security credentials of an AWS root account, but we do not recommended it. -// Instead, we recommend that you create an IAM user for the purpose of the -// proxy application and then attach a policy to the IAM user that limits federated -// users to only the actions and resources that they need access to. For more -// information, see IAM Best Practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) +// You can also call GetFederationToken using the security credentials of an +// AWS account root user, but we do not recommend it. Instead, we recommend +// that you create an IAM user for the purpose of the proxy application. Then +// attach a policy to the IAM user that limits federated users to only the actions +// and resources that they need to access. For more information, see IAM Best +// Practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) // in the IAM User Guide. // -// The temporary security credentials that are obtained by using the long-term -// credentials of an IAM user are valid for the specified duration, from 900 -// seconds (15 minutes) up to a maximium of 129600 seconds (36 hours). The default -// is 43200 seconds (12 hours). Temporary credentials that are obtained by using -// AWS root account credentials have a maximum duration of 3600 seconds (1 hour). +// The temporary credentials are valid for the specified duration, from 900 +// seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default +// is 43,200 seconds (12 hours). Temporary credentials that are obtained by +// using AWS account root user credentials have a maximum duration of 3,600 +// seconds (1 hour). // // The temporary security credentials created by GetFederationToken can be used // to make API calls to any AWS service with the following exceptions: // -// * You cannot use these credentials to call any IAM APIs. +// * You cannot use these credentials to call any IAM API operations. // -// * You cannot call any STS APIs except GetCallerIdentity. +// * You cannot call any STS API operations except GetCallerIdentity. // // Permissions // -// The permissions for the temporary security credentials returned by GetFederationToken -// are determined by a combination of the following: +// You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// to this operation. You can pass a single JSON policy document to use as an +// inline session policy. You can also specify up to 10 managed policies to +// use as managed session policies. The plain text that you use for both inline +// and managed session policies shouldn't exceed 2048 characters. // -// * The policy or policies that are attached to the IAM user whose credentials -// are used to call GetFederationToken. -// -// * The policy that is passed as a parameter in the call. -// -// The passed policy is attached to the temporary security credentials that -// result from the GetFederationToken API call--that is, to the federated user. -// When the federated user makes an AWS request, AWS evaluates the policy attached -// to the federated user in combination with the policy or policies attached -// to the IAM user whose credentials were used to call GetFederationToken. AWS -// allows the federated user's request only when both the federated user and -// the IAM user are explicitly allowed to perform the requested action. The -// passed policy cannot grant more permissions than those that are defined in -// the IAM user policy. -// -// A typical use case is that the permissions of the IAM user whose credentials -// are used to call GetFederationToken are designed to allow access to all the -// actions and resources that any federated user will need. Then, for individual -// users, you pass a policy to the operation that scopes down the permissions -// to a level that's appropriate to that individual user, using a policy that -// allows only a subset of permissions that are granted to the IAM user. -// -// If you do not pass a policy, the resulting temporary security credentials -// have no effective permissions. The only exception is when the temporary security -// credentials are used to access a resource that has a resource-based policy -// that specifically allows the federated user to access the resource. -// -// For more information about how permissions work, see Permissions for GetFederationToken -// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html). -// For information about using GetFederationToken to create temporary security -// credentials, see GetFederationToken—Federation Through a Custom Identity -// Broker (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken). +// Though the session policy parameters are optional, if you do not pass a policy, +// then the resulting federated user session has no permissions. The only exception +// is when the credentials are used to access a resource that has a resource-based +// policy that specifically references the federated user session in the Principal +// element of the policy. When you pass session policies, the session permissions +// are the intersection of the IAM user policies and the session policies that +// you pass. This gives you a way to further restrict the permissions for a +// federated user. You cannot use session policies to grant more permissions +// than those that are defined in the permissions policy of the IAM user. For +// more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) +// in the IAM User Guide. For information about using GetFederationToken to +// create temporary security credentials, see GetFederationToken—Federation +// Through a Custom Identity Broker (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -931,7 +905,7 @@ func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *re // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken @@ -1003,48 +977,47 @@ func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request. // Returns a set of temporary credentials for an AWS account or IAM user. The // credentials consist of an access key ID, a secret access key, and a security // token. Typically, you use GetSessionToken if you want to use MFA to protect -// programmatic calls to specific AWS APIs like Amazon EC2 StopInstances. MFA-enabled -// IAM users would need to call GetSessionToken and submit an MFA code that -// is associated with their MFA device. Using the temporary security credentials -// that are returned from the call, IAM users can then make programmatic calls -// to APIs that require MFA authentication. If you do not supply a correct MFA -// code, then the API returns an access denied error. For a comparison of GetSessionToken -// with the other APIs that produce temporary credentials, see Requesting Temporary -// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) -// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) +// programmatic calls to specific AWS API operations like Amazon EC2 StopInstances. +// MFA-enabled IAM users would need to call GetSessionToken and submit an MFA +// code that is associated with their MFA device. Using the temporary security +// credentials that are returned from the call, IAM users can then make programmatic +// calls to API operations that require MFA authentication. If you do not supply +// a correct MFA code, then the API returns an access denied error. For a comparison +// of GetSessionToken with the other API operations that produce temporary credentials, +// see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) +// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) // in the IAM User Guide. // -// The GetSessionToken action must be called by using the long-term AWS security -// credentials of the AWS account or an IAM user. Credentials that are created -// by IAM users are valid for the duration that you specify, from 900 seconds -// (15 minutes) up to a maximum of 129600 seconds (36 hours), with a default -// of 43200 seconds (12 hours); credentials that are created by using account -// credentials can range from 900 seconds (15 minutes) up to a maximum of 3600 -// seconds (1 hour), with a default of 1 hour. +// The GetSessionToken operation must be called by using the long-term AWS security +// credentials of the AWS account root user or an IAM user. Credentials that +// are created by IAM users are valid for the duration that you specify. This +// duration can range from 900 seconds (15 minutes) up to a maximum of 129,600 +// seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials +// based on account credentials can range from 900 seconds (15 minutes) up to +// 3,600 seconds (1 hour), with a default of 1 hour. // // The temporary security credentials created by GetSessionToken can be used // to make API calls to any AWS service with the following exceptions: // -// * You cannot call any IAM APIs unless MFA authentication information is -// included in the request. +// * You cannot call any IAM API operations unless MFA authentication information +// is included in the request. // -// * You cannot call any STS API exceptAssumeRole or GetCallerIdentity. +// * You cannot call any STS API except AssumeRole or GetCallerIdentity. // -// We recommend that you do not call GetSessionToken with root account credentials. -// Instead, follow our best practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) +// We recommend that you do not call GetSessionToken with AWS account root user +// credentials. Instead, follow our best practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) // by creating one or more IAM users, giving them the necessary permissions, // and using IAM users for everyday interaction with AWS. // -// The permissions associated with the temporary security credentials returned -// by GetSessionToken are based on the permissions associated with account or -// IAM user whose credentials are used to call the action. If GetSessionToken -// is called using root account credentials, the temporary credentials have -// root account permissions. Similarly, if GetSessionToken is called using the -// credentials of an IAM user, the temporary credentials have the same permissions -// as the IAM user. +// The credentials that are returned by GetSessionToken are based on permissions +// associated with the user whose credentials were used to call the operation. +// If GetSessionToken is called using AWS account root user credentials, the +// temporary credentials have root user permissions. Similarly, if GetSessionToken +// is called using the credentials of an IAM user, the temporary credentials +// have the same permissions as the IAM user. // // For more information about using GetSessionToken to create temporary credentials, -// go to Temporary Credentials for Users in Untrusted Environments (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) +// go to Temporary Credentials for Users in Untrusted Environments (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) // in the IAM User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1059,7 +1032,7 @@ func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request. // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating -// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken @@ -1094,7 +1067,7 @@ type AssumeRoleInput struct { // a session duration of 12 hours, but your administrator set the maximum session // duration to 6 hours, your operation fails. To learn how to view the maximum // value for your role, see View the Maximum Session Duration Setting for a - // Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) + // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. // // By default, the value is set to 3600 seconds. @@ -1104,51 +1077,77 @@ type AssumeRoleInput struct { // to the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) + // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) // in the IAM User Guide. DurationSeconds *int64 `min:"900" type:"integer"` - // A unique identifier that is used by third parties when assuming roles in - // their customers' accounts. For each role that the third party can assume, - // they should instruct their customers to ensure the role's trust policy checks - // for the external ID that the third party generated. Each time the third party - // assumes the role, they should pass the customer's external ID. The external - // ID is useful in order to help third parties bind a role to the customer who - // created it. For more information about the external ID, see How to Use an - // External ID When Granting Access to Your AWS Resources to a Third Party (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) + // A unique identifier that might be required when you assume a role in another + // account. If the administrator of the account to which the role belongs provided + // you with an external ID, then provide that value in the ExternalId parameter. + // This value can be any string, such as a passphrase or account number. A cross-account + // role is usually set up to trust everyone in an account. Therefore, the administrator + // of the trusting account might send an external ID to the administrator of + // the trusted account. That way, only someone with the ID can assume the role, + // rather than everyone in the account. For more information about the external + // ID, see How to Use an External ID When Granting Access to Your AWS Resources + // to a Third Party (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) // in the IAM User Guide. // - // The regex used to validated this parameter is a string of characters consisting + // The regex used to validate this parameter is a string of characters consisting // of upper- and lower-case alphanumeric characters with no spaces. You can // also include underscores or any of the following characters: =,.@:/- ExternalId *string `min:"2" type:"string"` - // An IAM policy in JSON format. + // An IAM policy in JSON format that you want to use as an inline session policy. // - // This parameter is optional. If you pass a policy, the temporary security - // credentials that are returned by the operation have the permissions that - // are allowed by both (the intersection of) the access policy of the role that - // is being assumed, and the policy that you pass. This gives you a way to further - // restrict the permissions for the resulting temporary security credentials. - // You cannot use the passed policy to grant permissions that are in excess - // of those allowed by the access policy of the role that is being assumed. - // For more information, see Permissions for AssumeRole, AssumeRoleWithSAML, - // and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) + // This parameter is optional. Passing policies to this operation returns new + // temporary credentials. The resulting session's permissions are the intersection + // of the role's identity-based policy and the session policies. You can use + // the role's temporary credentials in subsequent AWS API calls to access resources + // in the account that owns the role. You cannot use session policies to grant + // more permissions than those allowed by the identity-based policy of the role + // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters up to 2048 characters in length. The characters can be any - // ASCII character from the space character to the end of the valid character - // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), + // The plain text that you use for both inline and managed session policies + // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // character from the space character to the end of the valid character list + // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), // and carriage return (\u000D) characters. // - // The policy plain text must be 2048 bytes or shorter. However, an internal - // conversion compresses it into a packed binary format with a separate limit. - // The PackedPolicySize response element indicates by percentage how close to - // the upper size limit the policy is, with 100% equaling the maximum allowed - // size. + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. Policy *string `min:"1" type:"string"` + // The Amazon Resource Names (ARNs) of the IAM managed policies that you want + // to use as managed session policies. The policies must exist in the same account + // as the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plain text that you use for both inline and managed session + // policies shouldn't exceed 2048 characters. For more information about ARNs, + // see Amazon Resource Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html) + // in the AWS General Reference. + // + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's identity-based + // policy and the session policies. You can use the role's temporary credentials + // in subsequent AWS API calls to access resources in the account that owns + // the role. You cannot use session policies to grant more permissions than + // those allowed by the identity-based policy of the role that is being assumed. + // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + PolicyArns []*PolicyDescriptorType `type:"list"` + // The Amazon Resource Name (ARN) of the role to assume. // // RoleArn is a required field @@ -1161,8 +1160,8 @@ type AssumeRoleInput struct { // scenarios, the role session name is visible to, and can be logged by the // account that owns the role. The role session name is also used in the ARN // of the assumed role principal. This means that subsequent cross-account API - // requests using the temporary security credentials will expose the role session - // name to the external account in their CloudTrail logs. + // requests that use the temporary security credentials will expose the role + // session name to the external account in their AWS CloudTrail logs. // // The regex used to validate this parameter is a string of characters consisting // of upper- and lower-case alphanumeric characters with no spaces. You can @@ -1232,6 +1231,16 @@ func (s *AssumeRoleInput) Validate() error { if s.TokenCode != nil && len(*s.TokenCode) < 6 { invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6)) } + if s.PolicyArns != nil { + for i, v := range s.PolicyArns { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1257,6 +1266,12 @@ func (s *AssumeRoleInput) SetPolicy(v string) *AssumeRoleInput { return s } +// SetPolicyArns sets the PolicyArns field's value. +func (s *AssumeRoleInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleInput { + s.PolicyArns = v + return s +} + // SetRoleArn sets the RoleArn field's value. func (s *AssumeRoleInput) SetRoleArn(v string) *AssumeRoleInput { s.RoleArn = &v @@ -1296,10 +1311,8 @@ type AssumeRoleOutput struct { // The temporary security credentials, which include an access key ID, a secret // access key, and a security (or session) token. // - // Note: The size of the security token that STS APIs return is not fixed. We - // strongly recommend that you make no assumptions about the maximum size. As - // of this writing, the typical size is less than 4096 bytes, but that can vary. - // Also, future updates to AWS might require larger sizes. + // The size of the security token that STS API operations return is not fixed. + // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` // A percentage value that indicates the size of the policy in packed form. @@ -1349,7 +1362,7 @@ type AssumeRoleWithSAMLInput struct { // specify a session duration of 12 hours, but your administrator set the maximum // session duration to 6 hours, your operation fails. To learn how to view the // maximum value for your role, see View the Maximum Session Duration Setting - // for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) + // for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. // // By default, the value is set to 3600 seconds. @@ -1359,36 +1372,60 @@ type AssumeRoleWithSAMLInput struct { // to the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) + // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) // in the IAM User Guide. DurationSeconds *int64 `min:"900" type:"integer"` - // An IAM policy in JSON format. + // An IAM policy in JSON format that you want to use as an inline session policy. // - // The policy parameter is optional. If you pass a policy, the temporary security - // credentials that are returned by the operation have the permissions that - // are allowed by both the access policy of the role that is being assumed, - // and the policy that you pass. This gives you a way to further restrict the - // permissions for the resulting temporary security credentials. You cannot - // use the passed policy to grant permissions that are in excess of those allowed - // by the access policy of the role that is being assumed. For more information, - // Permissions for AssumeRole, AssumeRoleWithSAML, and AssumeRoleWithWebIdentity - // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) + // This parameter is optional. Passing policies to this operation returns new + // temporary credentials. The resulting session's permissions are the intersection + // of the role's identity-based policy and the session policies. You can use + // the role's temporary credentials in subsequent AWS API calls to access resources + // in the account that owns the role. You cannot use session policies to grant + // more permissions than those allowed by the identity-based policy of the role + // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters up to 2048 characters in length. The characters can be any - // ASCII character from the space character to the end of the valid character - // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), + // The plain text that you use for both inline and managed session policies + // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // character from the space character to the end of the valid character list + // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), // and carriage return (\u000D) characters. // - // The policy plain text must be 2048 bytes or shorter. However, an internal - // conversion compresses it into a packed binary format with a separate limit. - // The PackedPolicySize response element indicates by percentage how close to - // the upper size limit the policy is, with 100% equaling the maximum allowed - // size. + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. Policy *string `min:"1" type:"string"` + // The Amazon Resource Names (ARNs) of the IAM managed policies that you want + // to use as managed session policies. The policies must exist in the same account + // as the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plain text that you use for both inline and managed session + // policies shouldn't exceed 2048 characters. For more information about ARNs, + // see Amazon Resource Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html) + // in the AWS General Reference. + // + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's identity-based + // policy and the session policies. You can use the role's temporary credentials + // in subsequent AWS API calls to access resources in the account that owns + // the role. You cannot use session policies to grant more permissions than + // those allowed by the identity-based policy of the role that is being assumed. + // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + PolicyArns []*PolicyDescriptorType `type:"list"` + // The Amazon Resource Name (ARN) of the SAML provider in IAM that describes // the IdP. // @@ -1402,8 +1439,8 @@ type AssumeRoleWithSAMLInput struct { // The base-64 encoded SAML authentication response provided by the IdP. // - // For more information, see Configuring a Relying Party and Adding Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html) - // in the Using IAM guide. + // For more information, see Configuring a Relying Party and Adding Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html) + // in the IAM User Guide. // // SAMLAssertion is a required field SAMLAssertion *string `min:"4" type:"string" required:"true"` @@ -1446,6 +1483,16 @@ func (s *AssumeRoleWithSAMLInput) Validate() error { if s.SAMLAssertion != nil && len(*s.SAMLAssertion) < 4 { invalidParams.Add(request.NewErrParamMinLen("SAMLAssertion", 4)) } + if s.PolicyArns != nil { + for i, v := range s.PolicyArns { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1465,6 +1512,12 @@ func (s *AssumeRoleWithSAMLInput) SetPolicy(v string) *AssumeRoleWithSAMLInput { return s } +// SetPolicyArns sets the PolicyArns field's value. +func (s *AssumeRoleWithSAMLInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithSAMLInput { + s.PolicyArns = v + return s +} + // SetPrincipalArn sets the PrincipalArn field's value. func (s *AssumeRoleWithSAMLInput) SetPrincipalArn(v string) *AssumeRoleWithSAMLInput { s.PrincipalArn = &v @@ -1499,10 +1552,8 @@ type AssumeRoleWithSAMLOutput struct { // The temporary security credentials, which include an access key ID, a secret // access key, and a security (or session) token. // - // Note: The size of the security token that STS APIs return is not fixed. We - // strongly recommend that you make no assumptions about the maximum size. As - // of this writing, the typical size is less than 4096 bytes, but that can vary. - // Also, future updates to AWS might require larger sizes. + // The size of the security token that STS API operations return is not fixed. + // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` // The value of the Issuer element of the SAML assertion. @@ -1606,7 +1657,7 @@ type AssumeRoleWithWebIdentityInput struct { // a session duration of 12 hours, but your administrator set the maximum session // duration to 6 hours, your operation fails. To learn how to view the maximum // value for your role, see View the Maximum Session Duration Setting for a - // Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) + // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) // in the IAM User Guide. // // By default, the value is set to 3600 seconds. @@ -1616,35 +1667,60 @@ type AssumeRoleWithWebIdentityInput struct { // to the federation endpoint for a console sign-in token takes a SessionDuration // parameter that specifies the maximum length of the console session. For more // information, see Creating a URL that Enables Federated Users to Access the - // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) + // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) // in the IAM User Guide. DurationSeconds *int64 `min:"900" type:"integer"` - // An IAM policy in JSON format. + // An IAM policy in JSON format that you want to use as an inline session policy. // - // The policy parameter is optional. If you pass a policy, the temporary security - // credentials that are returned by the operation have the permissions that - // are allowed by both the access policy of the role that is being assumed, - // and the policy that you pass. This gives you a way to further restrict the - // permissions for the resulting temporary security credentials. You cannot - // use the passed policy to grant permissions that are in excess of those allowed - // by the access policy of the role that is being assumed. For more information, - // see Permissions for AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) + // This parameter is optional. Passing policies to this operation returns new + // temporary credentials. The resulting session's permissions are the intersection + // of the role's identity-based policy and the session policies. You can use + // the role's temporary credentials in subsequent AWS API calls to access resources + // in the account that owns the role. You cannot use session policies to grant + // more permissions than those allowed by the identity-based policy of the role + // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) // in the IAM User Guide. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters up to 2048 characters in length. The characters can be any - // ASCII character from the space character to the end of the valid character - // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), + // The plain text that you use for both inline and managed session policies + // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // character from the space character to the end of the valid character list + // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), // and carriage return (\u000D) characters. // - // The policy plain text must be 2048 bytes or shorter. However, an internal - // conversion compresses it into a packed binary format with a separate limit. - // The PackedPolicySize response element indicates by percentage how close to - // the upper size limit the policy is, with 100% equaling the maximum allowed - // size. + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. Policy *string `min:"1" type:"string"` + // The Amazon Resource Names (ARNs) of the IAM managed policies that you want + // to use as managed session policies. The policies must exist in the same account + // as the role. + // + // This parameter is optional. You can provide up to 10 managed policy ARNs. + // However, the plain text that you use for both inline and managed session + // policies shouldn't exceed 2048 characters. For more information about ARNs, + // see Amazon Resource Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html) + // in the AWS General Reference. + // + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. + // + // Passing policies to this operation returns new temporary credentials. The + // resulting session's permissions are the intersection of the role's identity-based + // policy and the session policies. You can use the role's temporary credentials + // in subsequent AWS API calls to access resources in the account that owns + // the role. You cannot use session policies to grant more permissions than + // those allowed by the identity-based policy of the role that is being assumed. + // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + PolicyArns []*PolicyDescriptorType `type:"list"` + // The fully qualified host component of the domain name of the identity provider. // // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com @@ -1721,6 +1797,16 @@ func (s *AssumeRoleWithWebIdentityInput) Validate() error { if s.WebIdentityToken != nil && len(*s.WebIdentityToken) < 4 { invalidParams.Add(request.NewErrParamMinLen("WebIdentityToken", 4)) } + if s.PolicyArns != nil { + for i, v := range s.PolicyArns { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1740,6 +1826,12 @@ func (s *AssumeRoleWithWebIdentityInput) SetPolicy(v string) *AssumeRoleWithWebI return s } +// SetPolicyArns sets the PolicyArns field's value. +func (s *AssumeRoleWithWebIdentityInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithWebIdentityInput { + s.PolicyArns = v + return s +} + // SetProviderId sets the ProviderId field's value. func (s *AssumeRoleWithWebIdentityInput) SetProviderId(v string) *AssumeRoleWithWebIdentityInput { s.ProviderId = &v @@ -1784,10 +1876,8 @@ type AssumeRoleWithWebIdentityOutput struct { // The temporary security credentials, which include an access key ID, a secret // access key, and a security token. // - // Note: The size of the security token that STS APIs return is not fixed. We - // strongly recommend that you make no assumptions about the maximum size. As - // of this writing, the typical size is less than 4096 bytes, but that can vary. - // Also, future updates to AWS might require larger sizes. + // The size of the security token that STS API operations return is not fixed. + // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` // A percentage value that indicates the size of the policy in packed form. @@ -1796,7 +1886,7 @@ type AssumeRoleWithWebIdentityOutput struct { PackedPolicySize *int64 `type:"integer"` // The issuing authority of the web identity token presented. For OpenID Connect - // ID Tokens this contains the value of the iss field. For OAuth 2.0 access + // ID tokens, this contains the value of the iss field. For OAuth 2.0 access // tokens, this contains the value of the ProviderId parameter that was passed // in the AssumeRoleWithWebIdentity request. Provider *string `type:"string"` @@ -1863,7 +1953,7 @@ type AssumedRoleUser struct { // The ARN of the temporary security credentials that are returned from the // AssumeRole action. For more information about ARNs and how to use them in - // policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + // policies, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) // in Using IAM. // // Arn is a required field @@ -2031,7 +2121,7 @@ type FederatedUser struct { // The ARN that specifies the federated user that is associated with the credentials. // For more information about ARNs and how to use them in policies, see IAM - // Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) + // Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) // in Using IAM. // // Arn is a required field @@ -2093,8 +2183,8 @@ type GetCallerIdentityOutput struct { Arn *string `min:"20" type:"string"` // The unique identifier of the calling entity. The exact value depends on the - // type of entity making the call. The values returned are those listed in the - // aws:userid column in the Principal table (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable) + // type of entity that is making the call. The values returned are those listed + // in the aws:userid column in the Principal table (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable) // found on the Policy Variables reference page in the IAM User Guide. UserId *string `type:"string"` } @@ -2131,12 +2221,11 @@ type GetFederationTokenInput struct { _ struct{} `type:"structure"` // The duration, in seconds, that the session should last. Acceptable durations - // for federation sessions range from 900 seconds (15 minutes) to 129600 seconds - // (36 hours), with 43200 seconds (12 hours) as the default. Sessions obtained - // using AWS account (root) credentials are restricted to a maximum of 3600 + // for federation sessions range from 900 seconds (15 minutes) to 129,600 seconds + // (36 hours), with 43,200 seconds (12 hours) as the default. Sessions obtained + // using AWS account root user credentials are restricted to a maximum of 3,600 // seconds (one hour). If the specified duration is longer than one hour, the - // session obtained by using AWS account (root) credentials defaults to one - // hour. + // session obtained by using root user credentials defaults to one hour. DurationSeconds *int64 `min:"900" type:"integer"` // The name of the federated user. The name is used as an identifier for the @@ -2151,36 +2240,73 @@ type GetFederationTokenInput struct { // Name is a required field Name *string `min:"2" type:"string" required:"true"` - // An IAM policy in JSON format that is passed with the GetFederationToken call - // and evaluated along with the policy or policies that are attached to the - // IAM user whose credentials are used to call GetFederationToken. The passed - // policy is used to scope down the permissions that are available to the IAM - // user, by allowing only a subset of the permissions that are granted to the - // IAM user. The passed policy cannot grant more permissions than those granted - // to the IAM user. The final permissions for the federated user are the most - // restrictive set based on the intersection of the passed policy and the IAM - // user policy. + // An IAM policy in JSON format that you want to use as an inline session policy. // - // If you do not pass a policy, the resulting temporary security credentials - // have no effective permissions. The only exception is when the temporary security - // credentials are used to access a resource that has a resource-based policy - // that specifically allows the federated user to access the resource. + // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // to this operation. You can pass a single JSON policy document to use as an + // inline session policy. You can also specify up to 10 managed policies to + // use as managed session policies. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters up to 2048 characters in length. The characters can be any - // ASCII character from the space character to the end of the valid character - // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), + // This parameter is optional. However, if you do not pass any session policies, + // then the resulting federated user session has no permissions. The only exception + // is when the credentials are used to access a resource that has a resource-based + // policy that specifically references the federated user session in the Principal + // element of the policy. + // + // When you pass session policies, the session permissions are the intersection + // of the IAM user policies and the session policies that you pass. This gives + // you a way to further restrict the permissions for a federated user. You cannot + // use session policies to grant more permissions than those that are defined + // in the permissions policy of the IAM user. For more information, see Session + // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + // + // The plain text that you use for both inline and managed session policies + // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII + // character from the space character to the end of the valid character list + // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A), // and carriage return (\u000D) characters. // - // The policy plain text must be 2048 bytes or shorter. However, an internal - // conversion compresses it into a packed binary format with a separate limit. - // The PackedPolicySize response element indicates by percentage how close to - // the upper size limit the policy is, with 100% equaling the maximum allowed - // size. - // - // For more information about how permissions work, see Permissions for GetFederationToken - // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html). + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. Policy *string `min:"1" type:"string"` + + // The Amazon Resource Names (ARNs) of the IAM managed policies that you want + // to use as a managed session policy. The policies must exist in the same account + // as the IAM user that is requesting federated access. + // + // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // to this operation. You can pass a single JSON policy document to use as an + // inline session policy. You can also specify up to 10 managed policies to + // use as managed session policies. The plain text that you use for both inline + // and managed session policies shouldn't exceed 2048 characters. You can provide + // up to 10 managed policy ARNs. For more information about ARNs, see Amazon + // Resource Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html) + // in the AWS General Reference. + // + // This parameter is optional. However, if you do not pass any session policies, + // then the resulting federated user session has no permissions. The only exception + // is when the credentials are used to access a resource that has a resource-based + // policy that specifically references the federated user session in the Principal + // element of the policy. + // + // When you pass session policies, the session permissions are the intersection + // of the IAM user policies and the session policies that you pass. This gives + // you a way to further restrict the permissions for a federated user. You cannot + // use session policies to grant more permissions than those that are defined + // in the permissions policy of the IAM user. For more information, see Session + // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) + // in the IAM User Guide. + // + // The characters in this parameter count towards the 2048 character session + // policy guideline. However, an AWS conversion compresses the session policies + // into a packed binary format that has a separate limit. This is the enforced + // limit. The PackedPolicySize response element indicates by percentage how + // close the policy is to the upper size limit. + PolicyArns []*PolicyDescriptorType `type:"list"` } // String returns the string representation @@ -2208,6 +2334,16 @@ func (s *GetFederationTokenInput) Validate() error { if s.Policy != nil && len(*s.Policy) < 1 { invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) } + if s.PolicyArns != nil { + for i, v := range s.PolicyArns { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -2233,6 +2369,12 @@ func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput { return s } +// SetPolicyArns sets the PolicyArns field's value. +func (s *GetFederationTokenInput) SetPolicyArns(v []*PolicyDescriptorType) *GetFederationTokenInput { + s.PolicyArns = v + return s +} + // Contains the response to a successful GetFederationToken request, including // temporary AWS credentials that can be used to make AWS requests. type GetFederationTokenOutput struct { @@ -2241,10 +2383,8 @@ type GetFederationTokenOutput struct { // The temporary security credentials, which include an access key ID, a secret // access key, and a security (or session) token. // - // Note: The size of the security token that STS APIs return is not fixed. We - // strongly recommend that you make no assumptions about the maximum size. As - // of this writing, the typical size is less than 4096 bytes, but that can vary. - // Also, future updates to AWS might require larger sizes. + // The size of the security token that STS API operations return is not fixed. + // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` // Identifiers for the federated user associated with the credentials (such @@ -2291,11 +2431,11 @@ type GetSessionTokenInput struct { _ struct{} `type:"structure"` // The duration, in seconds, that the credentials should remain valid. Acceptable - // durations for IAM user sessions range from 900 seconds (15 minutes) to 129600 - // seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions - // for AWS account owners are restricted to a maximum of 3600 seconds (one hour). - // If the duration is longer than one hour, the session for AWS account owners - // defaults to one hour. + // durations for IAM user sessions range from 900 seconds (15 minutes) to 129,600 + // seconds (36 hours), with 43,200 seconds (12 hours) as the default. Sessions + // for AWS account owners are restricted to a maximum of 3,600 seconds (one + // hour). If the duration is longer than one hour, the session for AWS account + // owners defaults to one hour. DurationSeconds *int64 `min:"900" type:"integer"` // The identification number of the MFA device that is associated with the IAM @@ -2306,16 +2446,16 @@ type GetSessionTokenInput struct { // You can find the device for an IAM user by going to the AWS Management Console // and viewing the user's security credentials. // - // The regex used to validated this parameter is a string of characters consisting + // The regex used to validate this parameter is a string of characters consisting // of upper- and lower-case alphanumeric characters with no spaces. You can // also include underscores or any of the following characters: =,.@:/- SerialNumber *string `min:"9" type:"string"` // The value provided by the MFA device, if MFA is required. If any policy requires // the IAM user to submit an MFA code, specify this value. If MFA authentication - // is required, and the user does not provide a code when requesting a set of - // temporary security credentials, the user will receive an "access denied" - // response when requesting resources that require MFA authentication. + // is required, the user must provide a code when requesting a set of temporary + // security credentials. A user who fails to provide the code receives an "access + // denied" response when requesting resources that require MFA authentication. // // The format for this parameter, as described by its regex pattern, is a sequence // of six numeric digits. @@ -2377,10 +2517,8 @@ type GetSessionTokenOutput struct { // The temporary security credentials, which include an access key ID, a secret // access key, and a security (or session) token. // - // Note: The size of the security token that STS APIs return is not fixed. We - // strongly recommend that you make no assumptions about the maximum size. As - // of this writing, the typical size is less than 4096 bytes, but that can vary. - // Also, future updates to AWS might require larger sizes. + // The size of the security token that STS API operations return is not fixed. + // We strongly recommend that you make no assumptions about the maximum size. Credentials *Credentials `type:"structure"` } @@ -2399,3 +2537,44 @@ func (s *GetSessionTokenOutput) SetCredentials(v *Credentials) *GetSessionTokenO s.Credentials = v return s } + +// A reference to the IAM managed policy that is passed as a session policy +// for a role session or a federated user session. +type PolicyDescriptorType struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the IAM managed policy to use as a session + // policy for the role. For more information about ARNs, see Amazon Resource + // Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html) + // in the AWS General Reference. + Arn *string `locationName:"arn" min:"20" type:"string"` +} + +// String returns the string representation +func (s PolicyDescriptorType) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PolicyDescriptorType) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PolicyDescriptorType) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PolicyDescriptorType"} + if s.Arn != nil && len(*s.Arn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("Arn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArn sets the Arn field's value. +func (s *PolicyDescriptorType) SetArn(v string) *PolicyDescriptorType { + s.Arn = &v + return s +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go b/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go index ef681ab0c..fcb720dca 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go @@ -7,22 +7,14 @@ // request temporary, limited-privilege credentials for AWS Identity and Access // Management (IAM) users or for users that you authenticate (federated users). // This guide provides descriptions of the STS API. For more detailed information -// about using this service, go to Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). -// -// As an alternative to using the API, you can use one of the AWS SDKs, which -// consist of libraries and sample code for various programming languages and -// platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient -// way to create programmatic access to STS. For example, the SDKs take care -// of cryptographically signing requests, managing errors, and retrying requests -// automatically. For information about the AWS SDKs, including how to download -// and install them, see the Tools for Amazon Web Services page (http://aws.amazon.com/tools/). +// about using this service, go to Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). // // For information about setting up signatures and authorization through the -// API, go to Signing AWS API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) +// API, go to Signing AWS API Requests (https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) // in the AWS General Reference. For general information about the Query API, -// go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) +// go to Making Query Requests (https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) // in Using IAM. For information about using security tokens with other AWS -// products, go to AWS Services That Work with IAM (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) +// products, go to AWS Services That Work with IAM (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) // in the IAM User Guide. // // If you're new to AWS and need additional technical information about a specific @@ -31,14 +23,38 @@ // // Endpoints // -// The AWS Security Token Service (STS) has a default endpoint of https://sts.amazonaws.com -// that maps to the US East (N. Virginia) region. Additional regions are available -// and are activated by default. For more information, see Activating and Deactivating -// AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) +// By default, AWS Security Token Service (STS) is available as a global service, +// and all AWS STS requests go to a single endpoint at https://sts.amazonaws.com. +// Global requests map to the US East (N. Virginia) region. AWS recommends using +// Regional AWS STS endpoints instead of the global endpoint to reduce latency, +// build in redundancy, and increase session token validity. For more information, +// see Managing AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. // -// For information about STS endpoints, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region) -// in the AWS General Reference. +// Most AWS Regions are enabled for operations in all AWS services by default. +// Those Regions are automatically activated for use with AWS STS. Some Regions, +// such as Asia Pacific (Hong Kong), must be manually enabled. To learn more +// about enabling and disabling AWS Regions, see Managing AWS Regions (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) +// in the AWS General Reference. When you enable these AWS Regions, they are +// automatically activated for use with AWS STS. You cannot activate the STS +// endpoint for a Region that is disabled. Tokens that are valid in all AWS +// Regions are longer than tokens that are valid in Regions that are enabled +// by default. Changing this setting might affect existing systems where you +// temporarily store tokens. For more information, see Managing Global Endpoint +// Session Tokens (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-manage-tokens) +// in the IAM User Guide. +// +// After you activate a Region for use with AWS STS, you can direct AWS STS +// API calls to that Region. AWS STS recommends that you provide both the Region +// and endpoint when you make calls to a Regional endpoint. You can provide +// the Region alone for manually enabled Regions, such as Asia Pacific (Hong +// Kong). In this case, the calls are directed to the STS Regional endpoint. +// However, if you provide the Region alone for Regions enabled by default, +// the calls are directed to the global endpoint of https://sts.amazonaws.com. +// +// To view the list of AWS STS endpoints and whether they are active by default, +// see Writing Code to Use AWS STS Regions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#id_credentials_temp_enable-regions_writing_code) +// in the IAM User Guide. // // Recording API requests // @@ -46,8 +62,28 @@ // your AWS account and delivers log files to an Amazon S3 bucket. By using // information collected by CloudTrail, you can determine what requests were // successfully made to STS, who made the request, when it was made, and so -// on. To learn more about CloudTrail, including how to turn it on and find -// your log files, see the AWS CloudTrail User Guide (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). +// on. +// +// If you activate AWS STS endpoints in Regions other than the default global +// endpoint, then you must also turn on CloudTrail logging in those Regions. +// This is necessary to record any AWS STS API calls that are made in those +// Regions. For more information, see Turning On CloudTrail in Additional Regions +// (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating_logs_regions_turn_on_ct.html) +// in the AWS CloudTrail User Guide. +// +// AWS Security Token Service (STS) is a global service with a single endpoint +// at https://sts.amazonaws.com. Calls to this endpoint are logged as calls +// to a global service. However, because this endpoint is physically located +// in the US East (N. Virginia) Region, your logs list us-east-1 as the event +// Region. CloudTrail does not write these logs to the US East (Ohio) Region +// unless you choose to include global service logs in that Region. CloudTrail +// writes calls to all Regional endpoints to their respective Regions. For example, +// calls to sts.us-east-2.amazonaws.com are published to the US East (Ohio) +// Region and calls to sts.eu-central-1.amazonaws.com are published to the EU +// (Frankfurt) Region. +// +// To learn more about CloudTrail, including how to turn it on and find your +// log files, see the AWS CloudTrail User Guide (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). // // See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go b/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go index e24884ef3..41ea09c35 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go @@ -67,7 +67,7 @@ const ( // STS is not activated in the requested region for the account that is being // asked to generate credentials. The account administrator must use the IAM // console to activate STS in that region. For more information, see Activating - // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) + // and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // in the IAM User Guide. ErrCodeRegionDisabledException = "RegionDisabledException" ) diff --git a/vendor/github.com/coreos/bbolt/bolt_riscv64.go b/vendor/github.com/coreos/bbolt/bolt_riscv64.go new file mode 100644 index 000000000..07b4b47cd --- /dev/null +++ b/vendor/github.com/coreos/bbolt/bolt_riscv64.go @@ -0,0 +1,12 @@ +// +build riscv64 + +package bbolt + +// maxMapSize represents the largest mmap size supported by Bolt. +const maxMapSize = 0xFFFFFFFFFFFF // 256TB + +// maxAllocSize is the size used when creating array pointers. +const maxAllocSize = 0x7FFFFFFF + +// Are unaligned load/stores broken on this arch? +var brokenUnaligned = true diff --git a/vendor/github.com/coreos/bbolt/db.go b/vendor/github.com/coreos/bbolt/db.go index 962248c99..870c8b1cc 100644 --- a/vendor/github.com/coreos/bbolt/db.go +++ b/vendor/github.com/coreos/bbolt/db.go @@ -121,6 +121,7 @@ type DB struct { AllocSize int path string + openFile func(string, int, os.FileMode) (*os.File, error) file *os.File dataref []byte // mmap'ed readonly, write throws SEGV data *[maxMapSize]byte @@ -199,10 +200,15 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) { db.readOnly = true } + db.openFile = options.OpenFile + if db.openFile == nil { + db.openFile = os.OpenFile + } + // Open data file and separate sync handler for metadata writes. db.path = path var err error - if db.file, err = os.OpenFile(db.path, flag|os.O_CREATE, mode); err != nil { + if db.file, err = db.openFile(db.path, flag|os.O_CREATE, mode); err != nil { _ = db.close() return nil, err } @@ -1054,6 +1060,10 @@ type Options struct { // set directly on the DB itself when returned from Open(), but this option // is useful in APIs which expose Options but not the underlying DB. NoSync bool + + // OpenFile is used to open files. It defaults to os.OpenFile. This option + // is useful for writing hermetic tests. + OpenFile func(string, int, os.FileMode) (*os.File, error) } // DefaultOptions represent the options used if nil options are passed into Open(). diff --git a/vendor/github.com/coreos/bbolt/freelist.go b/vendor/github.com/coreos/bbolt/freelist.go index 93fd85d50..587b8cc02 100644 --- a/vendor/github.com/coreos/bbolt/freelist.go +++ b/vendor/github.com/coreos/bbolt/freelist.go @@ -349,6 +349,28 @@ func (f *freelist) reload(p *page) { f.readIDs(a) } +// noSyncReload reads the freelist from pgids and filters out pending items. +func (f *freelist) noSyncReload(pgids []pgid) { + // Build a cache of only pending pages. + pcache := make(map[pgid]bool) + for _, txp := range f.pending { + for _, pendingID := range txp.ids { + pcache[pendingID] = true + } + } + + // Check each page in the freelist and build a new available freelist + // with any pages not in the pending lists. + var a []pgid + for _, id := range pgids { + if !pcache[id] { + a = append(a, id) + } + } + + f.readIDs(a) +} + // reindex rebuilds the free cache based on available and pending free lists. func (f *freelist) reindex() { ids := f.getFreePageIDs() diff --git a/vendor/github.com/coreos/bbolt/tx.go b/vendor/github.com/coreos/bbolt/tx.go index f50864142..2df7688c2 100644 --- a/vendor/github.com/coreos/bbolt/tx.go +++ b/vendor/github.com/coreos/bbolt/tx.go @@ -254,17 +254,36 @@ func (tx *Tx) Rollback() error { if tx.db == nil { return ErrTxClosed } - tx.rollback() + tx.nonPhysicalRollback() return nil } +// nonPhysicalRollback is called when user calls Rollback directly, in this case we do not need to reload the free pages from disk. +func (tx *Tx) nonPhysicalRollback() { + if tx.db == nil { + return + } + if tx.writable { + tx.db.freelist.rollback(tx.meta.txid) + } + tx.close() +} + +// rollback needs to reload the free pages from disk in case some system error happens like fsync error. func (tx *Tx) rollback() { if tx.db == nil { return } if tx.writable { tx.db.freelist.rollback(tx.meta.txid) - tx.db.freelist.reload(tx.db.page(tx.db.meta().freelist)) + if !tx.db.hasSyncedFreelist() { + // Reconstruct free page list by scanning the DB to get the whole free page list. + // Note: scaning the whole db is heavy if your db size is large in NoSyncFreeList mode. + tx.db.freelist.noSyncReload(tx.db.freepages()) + } else { + // Read free page list from freelist page. + tx.db.freelist.reload(tx.db.page(tx.db.meta().freelist)) + } } tx.close() } @@ -315,7 +334,7 @@ func (tx *Tx) Copy(w io.Writer) error { // If err == nil then exactly tx.Size() bytes will be written into the writer. func (tx *Tx) WriteTo(w io.Writer) (n int64, err error) { // Attempt to open reader with WriteFlag - f, err := os.OpenFile(tx.db.path, os.O_RDONLY|tx.WriteFlag, 0) + f, err := tx.db.openFile(tx.db.path, os.O_RDONLY|tx.WriteFlag, 0) if err != nil { return 0, err } @@ -369,7 +388,7 @@ func (tx *Tx) WriteTo(w io.Writer) (n int64, err error) { // A reader transaction is maintained during the copy so it is safe to continue // using the database while a copy is in progress. func (tx *Tx) CopyFile(path string, mode os.FileMode) error { - f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode) + f, err := tx.db.openFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode) if err != nil { return err } diff --git a/vendor/github.com/nsf/termbox-go/README.md b/vendor/github.com/nsf/termbox-go/README.md index 734aab73c..5ef47582e 100644 --- a/vendor/github.com/nsf/termbox-go/README.md +++ b/vendor/github.com/nsf/termbox-go/README.md @@ -44,6 +44,7 @@ There are also some interesting projects using termbox-go: - [cointop](https://github.com/miguelmota/cointop) is an interactive terminal based UI application for tracking cryptocurrencies. - [pexpo](https://github.com/nnao45/pexpo) is a terminal sending ping tool written in Go. - [jid](https://github.com/simeji/jid) is an interactive JSON drill down tool using filtering queries like jq. + - [nonograminGo](https://github.com/N0RM4L15T/nonograminGo) is a nonogram(aka. picross) in Go ### API reference [godoc.org/github.com/nsf/termbox-go](http://godoc.org/github.com/nsf/termbox-go) diff --git a/vendor/github.com/sevlyar/go-daemon/.travis.yml b/vendor/github.com/sevlyar/go-daemon/.travis.yml index aed4e4c64..03d430511 100644 --- a/vendor/github.com/sevlyar/go-daemon/.travis.yml +++ b/vendor/github.com/sevlyar/go-daemon/.travis.yml @@ -2,13 +2,14 @@ language: go go: - 1.3 + - 1.5 - tip before_install: - go get -t -v ./... script: - - go test -coverprofile=coverage.txt -covermode=atomic + - go test -v -coverprofile=coverage.txt -covermode=atomic after_success: - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/sevlyar/go-daemon/daemon_unix.go b/vendor/github.com/sevlyar/go-daemon/daemon_unix.go index 9a334f2f1..3bd7dc9b0 100644 --- a/vendor/github.com/sevlyar/go-daemon/daemon_unix.go +++ b/vendor/github.com/sevlyar/go-daemon/daemon_unix.go @@ -8,8 +8,6 @@ import ( "os" "path/filepath" "syscall" - - "github.com/kardianos/osext" ) // A Context describes daemon context. @@ -172,7 +170,7 @@ func (d *Context) closeFiles() (err error) { } func (d *Context) prepareEnv() (err error) { - if d.abspath, err = osext.Executable(); err != nil { + if d.abspath, err = osExecutable(); err != nil { return } @@ -218,7 +216,6 @@ func (d *Context) child() (err error) { decoder := json.NewDecoder(os.Stdin) if err = decoder.Decode(d); err != nil { - d.pidFile.Remove() return } @@ -228,14 +225,14 @@ func (d *Context) child() (err error) { if err = d.pidFile.WritePid(); err != nil { return } + defer func() { + if err != nil { + d.pidFile.Remove() + } + }() } - if err = syscall.Close(0); err != nil { - d.pidFile.Remove() - return - } if err = syscallDup(3, 0); err != nil { - d.pidFile.Remove() return } @@ -245,7 +242,6 @@ func (d *Context) child() (err error) { if len(d.Chroot) > 0 { err = syscall.Chroot(d.Chroot) if err != nil { - d.pidFile.Remove() return } } diff --git a/vendor/github.com/sevlyar/go-daemon/lock_file_solaris.go b/vendor/github.com/sevlyar/go-daemon/lock_file_solaris.go new file mode 100644 index 000000000..313dca07d --- /dev/null +++ b/vendor/github.com/sevlyar/go-daemon/lock_file_solaris.go @@ -0,0 +1,40 @@ +// +build solaris + +package daemon + +import ( + "io" + "syscall" +) + +func lockFile(fd uintptr) error { + lockInfo := syscall.Flock_t{ + Type: syscall.F_WRLCK, + Whence: io.SeekStart, + Start: 0, + Len: 0, + } + if err := syscall.FcntlFlock(fd, syscall.F_SETLK, &lockInfo); err != nil { + if err == syscall.EAGAIN { + err = ErrWouldBlock + } + return err + } + return nil +} + +func unlockFile(fd uintptr) error { + lockInfo := syscall.Flock_t{ + Type: syscall.F_UNLCK, + Whence: io.SeekStart, + Start: 0, + Len: 0, + } + if err := syscall.FcntlFlock(fd, syscall.F_GETLK, &lockInfo); err != nil { + if err == syscall.EAGAIN { + err = ErrWouldBlock + } + return err + } + return nil +} diff --git a/vendor/github.com/sevlyar/go-daemon/lock_file_unix.go b/vendor/github.com/sevlyar/go-daemon/lock_file_unix.go index a34edf756..4215a8ce5 100644 --- a/vendor/github.com/sevlyar/go-daemon/lock_file_unix.go +++ b/vendor/github.com/sevlyar/go-daemon/lock_file_unix.go @@ -1,4 +1,4 @@ -// +build darwin dragonfly freebsd linux netbsd openbsd plan9 solaris +// +build darwin dragonfly freebsd linux netbsd openbsd plan9 package daemon diff --git a/vendor/github.com/sevlyar/go-daemon/os_executable.go b/vendor/github.com/sevlyar/go-daemon/os_executable.go new file mode 100644 index 000000000..ae380743e --- /dev/null +++ b/vendor/github.com/sevlyar/go-daemon/os_executable.go @@ -0,0 +1,11 @@ +// +build go1.8 + +package daemon + +import ( + "os" +) + +func osExecutable() (string, error) { + return os.Executable() +} diff --git a/vendor/github.com/sevlyar/go-daemon/os_executable_pre18.go b/vendor/github.com/sevlyar/go-daemon/os_executable_pre18.go new file mode 100644 index 000000000..d1a705cc9 --- /dev/null +++ b/vendor/github.com/sevlyar/go-daemon/os_executable_pre18.go @@ -0,0 +1,11 @@ +// +build !go1.8 + +package daemon + +import ( + "github.com/kardianos/osext" +) + +func osExecutable() (string, error) { + return osext.Executable() +} diff --git a/vendor/github.com/sevlyar/go-daemon/syscall_dup.go b/vendor/github.com/sevlyar/go-daemon/syscall_dup.go index e5721015c..fbf1b4fdc 100644 --- a/vendor/github.com/sevlyar/go-daemon/syscall_dup.go +++ b/vendor/github.com/sevlyar/go-daemon/syscall_dup.go @@ -1,12 +1,11 @@ // +build !linux !arm64 // +build !windows +// +build go1.7 package daemon -import ( - "syscall" -) +import "golang.org/x/sys/unix" func syscallDup(oldfd int, newfd int) (err error) { - return syscall.Dup2(oldfd, newfd) + return unix.Dup2(oldfd, newfd) } diff --git a/vendor/github.com/sevlyar/go-daemon/syscall_dup_pre17.go b/vendor/github.com/sevlyar/go-daemon/syscall_dup_pre17.go new file mode 100644 index 000000000..b95621b47 --- /dev/null +++ b/vendor/github.com/sevlyar/go-daemon/syscall_dup_pre17.go @@ -0,0 +1,13 @@ +// +build !linux !arm64 +// +build !windows +// +build !go1.7 + +package daemon + +import ( + "syscall" +) + +func syscallDup(oldfd int, newfd int) (err error) { + return syscall.Dup2(oldfd, newfd) +} diff --git a/vendor/github.com/spf13/cobra/.gitignore b/vendor/github.com/spf13/cobra/.gitignore index 1b8c7c261..3b053c59e 100644 --- a/vendor/github.com/spf13/cobra/.gitignore +++ b/vendor/github.com/spf13/cobra/.gitignore @@ -34,3 +34,5 @@ tags *.exe cobra.test + +.idea/* diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index ff16e3f60..60c5a425b 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -23,6 +23,7 @@ Many of the most widely used Go projects are built using Cobra, such as: [Istio](https://istio.io), [Prototool](https://github.com/uber/prototool), [mattermost-server](https://github.com/mattermost/mattermost-server), +[Gardener](https://github.com/gardener/gardenctl), etc. [![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra) @@ -48,6 +49,7 @@ etc. * [Suggestions when "unknown command" happens](#suggestions-when-unknown-command-happens) * [Generating documentation for your command](#generating-documentation-for-your-command) * [Generating bash completions](#generating-bash-completions) + * [Generating zsh completions](#generating-zsh-completions) - [Contributing](#contributing) - [License](#license) @@ -336,7 +338,7 @@ rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose out A flag can also be assigned locally which will only apply to that specific command. ```go -rootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") +localCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from") ``` ### Local Flag on Parent Commands @@ -719,6 +721,11 @@ Cobra can generate documentation based on subcommands, flags, etc. in the follow Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible. Read more about it in [Bash Completions](bash_completions.md). +## Generating zsh completions + +Cobra can generate zsh-completion file. Read more about it in +[Zsh Completions](zsh_completions.md). + # Contributing 1. Fork it diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go index c3c1e5018..57bb8e1b3 100644 --- a/vendor/github.com/spf13/cobra/bash_completions.go +++ b/vendor/github.com/spf13/cobra/bash_completions.go @@ -545,51 +545,3 @@ func (c *Command) GenBashCompletionFile(filename string) error { return c.GenBashCompletion(outFile) } - -// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists, -// and causes your command to report an error if invoked without the flag. -func (c *Command) MarkFlagRequired(name string) error { - return MarkFlagRequired(c.Flags(), name) -} - -// MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag if it exists, -// and causes your command to report an error if invoked without the flag. -func (c *Command) MarkPersistentFlagRequired(name string) error { - return MarkFlagRequired(c.PersistentFlags(), name) -} - -// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists, -// and causes your command to report an error if invoked without the flag. -func MarkFlagRequired(flags *pflag.FlagSet, name string) error { - return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"}) -} - -// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (c *Command) MarkFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(c.Flags(), name, extensions...) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. -// Generated bash autocompletion will call the bash function f for the flag. -func (c *Command) MarkFlagCustom(name string, f string) error { - return MarkFlagCustom(c.Flags(), name, f) -} - -// MarkPersistentFlagFilename adds the BashCompFilenameExt annotation to the named persistent flag, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { - return MarkFlagFilename(c.PersistentFlags(), name, extensions...) -} - -// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag in the flag set, if it exists. -// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. -func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error { - return flags.SetAnnotation(name, BashCompFilenameExt, extensions) -} - -// MarkFlagCustom adds the BashCompCustom annotation to the named flag in the flag set, if it exists. -// Generated bash autocompletion will call the bash function f for the flag. -func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error { - return flags.SetAnnotation(name, BashCompCustom, []string{f}) -} diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index b257f91b6..c7e898303 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -177,8 +177,6 @@ type Command struct { // that we can use on every pflag set and children commands globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName - // output is an output writer defined by user. - output io.Writer // usageFunc is usage func defined by user. usageFunc func(*Command) error // usageTemplate is usage template defined by user. @@ -195,6 +193,13 @@ type Command struct { helpCommand *Command // versionTemplate is the version template defined by user. versionTemplate string + + // inReader is a reader defined by the user that replaces stdin + inReader io.Reader + // outWriter is a writer defined by the user that replaces stdout + outWriter io.Writer + // errWriter is a writer defined by the user that replaces stderr + errWriter io.Writer } // SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden @@ -205,8 +210,28 @@ func (c *Command) SetArgs(a []string) { // SetOutput sets the destination for usage and error messages. // If output is nil, os.Stderr is used. +// Deprecated: Use SetOut and/or SetErr instead func (c *Command) SetOutput(output io.Writer) { - c.output = output + c.outWriter = output + c.errWriter = output +} + +// SetOut sets the destination for usage messages. +// If newOut is nil, os.Stdout is used. +func (c *Command) SetOut(newOut io.Writer) { + c.outWriter = newOut +} + +// SetErr sets the destination for error messages. +// If newErr is nil, os.Stderr is used. +func (c *Command) SetErr(newErr io.Writer) { + c.errWriter = newErr +} + +// SetOut sets the source for input data +// If newIn is nil, os.Stdin is used. +func (c *Command) SetIn(newIn io.Reader) { + c.inReader = newIn } // SetUsageFunc sets usage function. Usage can be defined by application. @@ -267,9 +292,19 @@ func (c *Command) OutOrStderr() io.Writer { return c.getOut(os.Stderr) } +// ErrOrStderr returns output to stderr +func (c *Command) ErrOrStderr() io.Writer { + return c.getErr(os.Stderr) +} + +// ErrOrStderr returns output to stderr +func (c *Command) InOrStdin() io.Reader { + return c.getIn(os.Stdin) +} + func (c *Command) getOut(def io.Writer) io.Writer { - if c.output != nil { - return c.output + if c.outWriter != nil { + return c.outWriter } if c.HasParent() { return c.parent.getOut(def) @@ -277,6 +312,26 @@ func (c *Command) getOut(def io.Writer) io.Writer { return def } +func (c *Command) getErr(def io.Writer) io.Writer { + if c.errWriter != nil { + return c.errWriter + } + if c.HasParent() { + return c.parent.getErr(def) + } + return def +} + +func (c *Command) getIn(def io.Reader) io.Reader { + if c.inReader != nil { + return c.inReader + } + if c.HasParent() { + return c.parent.getIn(def) + } + return def +} + // UsageFunc returns either the function set by SetUsageFunc for this command // or a parent, or it returns a default usage function. func (c *Command) UsageFunc() (f func(*Command) error) { @@ -329,13 +384,22 @@ func (c *Command) Help() error { return nil } -// UsageString return usage string. +// UsageString returns usage string. func (c *Command) UsageString() string { - tmpOutput := c.output + // Storing normal writers + tmpOutput := c.outWriter + tmpErr := c.errWriter + bb := new(bytes.Buffer) - c.SetOutput(bb) + c.outWriter = bb + c.errWriter = bb + c.Usage() - c.output = tmpOutput + + // Setting things back to normal + c.outWriter = tmpOutput + c.errWriter = tmpErr + return bb.String() } @@ -1068,6 +1132,21 @@ func (c *Command) Printf(format string, i ...interface{}) { c.Print(fmt.Sprintf(format, i...)) } +// PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set. +func (c *Command) PrintErr(i ...interface{}) { + fmt.Fprint(c.ErrOrStderr(), i...) +} + +// PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set. +func (c *Command) PrintErrln(i ...interface{}) { + c.Print(fmt.Sprintln(i...)) +} + +// PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set. +func (c *Command) PrintErrf(format string, i ...interface{}) { + c.Print(fmt.Sprintf(format, i...)) +} + // CommandPath returns the full path to this command. func (c *Command) CommandPath() string { if c.HasParent() { diff --git a/vendor/github.com/spf13/cobra/powershell_completions.go b/vendor/github.com/spf13/cobra/powershell_completions.go new file mode 100644 index 000000000..756c61b9d --- /dev/null +++ b/vendor/github.com/spf13/cobra/powershell_completions.go @@ -0,0 +1,100 @@ +// PowerShell completions are based on the amazing work from clap: +// https://github.com/clap-rs/clap/blob/3294d18efe5f264d12c9035f404c7d189d4824e1/src/completions/powershell.rs +// +// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but +// can be downloaded separately for windows 7 or 8.1). + +package cobra + +import ( + "bytes" + "fmt" + "io" + "os" + "strings" + + "github.com/spf13/pflag" +) + +var powerShellCompletionTemplate = `using namespace System.Management.Automation +using namespace System.Management.Automation.Language +Register-ArgumentCompleter -Native -CommandName '%s' -ScriptBlock { + param($wordToComplete, $commandAst, $cursorPosition) + $commandElements = $commandAst.CommandElements + $command = @( + '%s' + for ($i = 1; $i -lt $commandElements.Count; $i++) { + $element = $commandElements[$i] + if ($element -isnot [StringConstantExpressionAst] -or + $element.StringConstantType -ne [StringConstantType]::BareWord -or + $element.Value.StartsWith('-')) { + break + } + $element.Value + } + ) -join ';' + $completions = @(switch ($command) {%s + }) + $completions.Where{ $_.CompletionText -like "$wordToComplete*" } | + Sort-Object -Property ListItemText +}` + +func generatePowerShellSubcommandCases(out io.Writer, cmd *Command, previousCommandName string) { + var cmdName string + if previousCommandName == "" { + cmdName = cmd.Name() + } else { + cmdName = fmt.Sprintf("%s;%s", previousCommandName, cmd.Name()) + } + + fmt.Fprintf(out, "\n '%s' {", cmdName) + + cmd.Flags().VisitAll(func(flag *pflag.Flag) { + if nonCompletableFlag(flag) { + return + } + usage := escapeStringForPowerShell(flag.Usage) + if len(flag.Shorthand) > 0 { + fmt.Fprintf(out, "\n [CompletionResult]::new('-%s', '%s', [CompletionResultType]::ParameterName, '%s')", flag.Shorthand, flag.Shorthand, usage) + } + fmt.Fprintf(out, "\n [CompletionResult]::new('--%s', '%s', [CompletionResultType]::ParameterName, '%s')", flag.Name, flag.Name, usage) + }) + + for _, subCmd := range cmd.Commands() { + usage := escapeStringForPowerShell(subCmd.Short) + fmt.Fprintf(out, "\n [CompletionResult]::new('%s', '%s', [CompletionResultType]::ParameterValue, '%s')", subCmd.Name(), subCmd.Name(), usage) + } + + fmt.Fprint(out, "\n break\n }") + + for _, subCmd := range cmd.Commands() { + generatePowerShellSubcommandCases(out, subCmd, cmdName) + } +} + +func escapeStringForPowerShell(s string) string { + return strings.Replace(s, "'", "''", -1) +} + +// GenPowerShellCompletion generates PowerShell completion file and writes to the passed writer. +func (c *Command) GenPowerShellCompletion(w io.Writer) error { + buf := new(bytes.Buffer) + + var subCommandCases bytes.Buffer + generatePowerShellSubcommandCases(&subCommandCases, c, "") + fmt.Fprintf(buf, powerShellCompletionTemplate, c.Name(), c.Name(), subCommandCases.String()) + + _, err := buf.WriteTo(w) + return err +} + +// GenPowerShellCompletionFile generates PowerShell completion file. +func (c *Command) GenPowerShellCompletionFile(filename string) error { + outFile, err := os.Create(filename) + if err != nil { + return err + } + defer outFile.Close() + + return c.GenPowerShellCompletion(outFile) +} diff --git a/vendor/github.com/spf13/cobra/powershell_completions.md b/vendor/github.com/spf13/cobra/powershell_completions.md new file mode 100644 index 000000000..afed80240 --- /dev/null +++ b/vendor/github.com/spf13/cobra/powershell_completions.md @@ -0,0 +1,14 @@ +# Generating PowerShell Completions For Your Own cobra.Command + +Cobra can generate PowerShell completion scripts. Users need PowerShell version 5.0 or above, which comes with Windows 10 and can be downloaded separately for Windows 7 or 8.1. They can then write the completions to a file and source this file from their PowerShell profile, which is referenced by the `$Profile` environment variable. See `Get-Help about_Profiles` for more info about PowerShell profiles. + +# What's supported + +- Completion for subcommands using their `.Short` description +- Completion for non-hidden flags using their `.Name` and `.Shorthand` + +# What's not yet supported + +- Command aliases +- Required, filename or custom flags (they will work like normal flags) +- Custom completion scripts diff --git a/vendor/github.com/spf13/cobra/shell_completions.go b/vendor/github.com/spf13/cobra/shell_completions.go new file mode 100644 index 000000000..ba0af9cb5 --- /dev/null +++ b/vendor/github.com/spf13/cobra/shell_completions.go @@ -0,0 +1,85 @@ +package cobra + +import ( + "github.com/spf13/pflag" +) + +// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists, +// and causes your command to report an error if invoked without the flag. +func (c *Command) MarkFlagRequired(name string) error { + return MarkFlagRequired(c.Flags(), name) +} + +// MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag if it exists, +// and causes your command to report an error if invoked without the flag. +func (c *Command) MarkPersistentFlagRequired(name string) error { + return MarkFlagRequired(c.PersistentFlags(), name) +} + +// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists, +// and causes your command to report an error if invoked without the flag. +func MarkFlagRequired(flags *pflag.FlagSet, name string) error { + return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"}) +} + +// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists. +// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided. +func (c *Command) MarkFlagFilename(name string, extensions ...string) error { + return MarkFlagFilename(c.Flags(), name, extensions...) +} + +// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists. +// Generated bash autocompletion will call the bash function f for the flag. +func (c *Command) MarkFlagCustom(name string, f string) error { + return MarkFlagCustom(c.Flags(), name, f) +} + +// MarkPersistentFlagFilename instructs the various shell completion +// implementations to limit completions for this persistent flag to the +// specified extensions (patterns). +// +// Shell Completion compatibility matrix: bash, zsh +func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error { + return MarkFlagFilename(c.PersistentFlags(), name, extensions...) +} + +// MarkFlagFilename instructs the various shell completion implementations to +// limit completions for this flag to the specified extensions (patterns). +// +// Shell Completion compatibility matrix: bash, zsh +func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error { + return flags.SetAnnotation(name, BashCompFilenameExt, extensions) +} + +// MarkFlagCustom instructs the various shell completion implementations to +// limit completions for this flag to the specified extensions (patterns). +// +// Shell Completion compatibility matrix: bash, zsh +func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error { + return flags.SetAnnotation(name, BashCompCustom, []string{f}) +} + +// MarkFlagDirname instructs the various shell completion implementations to +// complete only directories with this named flag. +// +// Shell Completion compatibility matrix: zsh +func (c *Command) MarkFlagDirname(name string) error { + return MarkFlagDirname(c.Flags(), name) +} + +// MarkPersistentFlagDirname instructs the various shell completion +// implementations to complete only directories with this persistent named flag. +// +// Shell Completion compatibility matrix: zsh +func (c *Command) MarkPersistentFlagDirname(name string) error { + return MarkFlagDirname(c.PersistentFlags(), name) +} + +// MarkFlagDirname instructs the various shell completion implementations to +// complete only directories with this specified flag. +// +// Shell Completion compatibility matrix: zsh +func MarkFlagDirname(flags *pflag.FlagSet, name string) error { + zshPattern := "-(/)" + return flags.SetAnnotation(name, zshCompDirname, []string{zshPattern}) +} diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go index 889c22e27..12755482f 100644 --- a/vendor/github.com/spf13/cobra/zsh_completions.go +++ b/vendor/github.com/spf13/cobra/zsh_completions.go @@ -1,13 +1,102 @@ package cobra import ( - "bytes" + "encoding/json" "fmt" "io" "os" + "sort" "strings" + "text/template" + + "github.com/spf13/pflag" ) +const ( + zshCompArgumentAnnotation = "cobra_annotations_zsh_completion_argument_annotation" + zshCompArgumentFilenameComp = "cobra_annotations_zsh_completion_argument_file_completion" + zshCompArgumentWordComp = "cobra_annotations_zsh_completion_argument_word_completion" + zshCompDirname = "cobra_annotations_zsh_dirname" +) + +var ( + zshCompFuncMap = template.FuncMap{ + "genZshFuncName": zshCompGenFuncName, + "extractFlags": zshCompExtractFlag, + "genFlagEntryForZshArguments": zshCompGenFlagEntryForArguments, + "extractArgsCompletions": zshCompExtractArgumentCompletionHintsForRendering, + } + zshCompletionText = ` +{{/* should accept Command (that contains subcommands) as parameter */}} +{{define "argumentsC" -}} +{{ $cmdPath := genZshFuncName .}} +function {{$cmdPath}} { + local -a commands + + _arguments -C \{{- range extractFlags .}} + {{genFlagEntryForZshArguments .}} \{{- end}} + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=({{range .Commands}}{{if not .Hidden}} + "{{.Name}}:{{.Short}}"{{end}}{{end}} + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in {{- range .Commands}}{{if not .Hidden}} + {{.Name}}) + {{$cmdPath}}_{{.Name}} + ;;{{end}}{{end}} + esac +} +{{range .Commands}}{{if not .Hidden}} +{{template "selectCmdTemplate" .}} +{{- end}}{{end}} +{{- end}} + +{{/* should accept Command without subcommands as parameter */}} +{{define "arguments" -}} +function {{genZshFuncName .}} { +{{" _arguments"}}{{range extractFlags .}} \ + {{genFlagEntryForZshArguments . -}} +{{end}}{{range extractArgsCompletions .}} \ + {{.}}{{end}} +} +{{end}} + +{{/* dispatcher for commands with or without subcommands */}} +{{define "selectCmdTemplate" -}} +{{if .Hidden}}{{/* ignore hidden*/}}{{else -}} +{{if .Commands}}{{template "argumentsC" .}}{{else}}{{template "arguments" .}}{{end}} +{{- end}} +{{- end}} + +{{/* template entry point */}} +{{define "Main" -}} +#compdef _{{.Name}} {{.Name}} + +{{template "selectCmdTemplate" .}} +{{end}} +` +) + +// zshCompArgsAnnotation is used to encode/decode zsh completion for +// arguments to/from Command.Annotations. +type zshCompArgsAnnotation map[int]zshCompArgHint + +type zshCompArgHint struct { + // Indicates the type of the completion to use. One of: + // zshCompArgumentFilenameComp or zshCompArgumentWordComp + Tipe string `json:"type"` + + // A value for the type above (globs for file completion or words) + Options []string `json:"options"` +} + // GenZshCompletionFile generates zsh completion file. func (c *Command) GenZshCompletionFile(filename string) error { outFile, err := os.Create(filename) @@ -19,108 +108,229 @@ func (c *Command) GenZshCompletionFile(filename string) error { return c.GenZshCompletion(outFile) } -// GenZshCompletion generates a zsh completion file and writes to the passed writer. +// GenZshCompletion generates a zsh completion file and writes to the passed +// writer. The completion always run on the root command regardless of the +// command it was called from. func (c *Command) GenZshCompletion(w io.Writer) error { - buf := new(bytes.Buffer) - - writeHeader(buf, c) - maxDepth := maxDepth(c) - writeLevelMapping(buf, maxDepth) - writeLevelCases(buf, maxDepth, c) - - _, err := buf.WriteTo(w) - return err -} - -func writeHeader(w io.Writer, cmd *Command) { - fmt.Fprintf(w, "#compdef %s\n\n", cmd.Name()) -} - -func maxDepth(c *Command) int { - if len(c.Commands()) == 0 { - return 0 + tmpl, err := template.New("Main").Funcs(zshCompFuncMap).Parse(zshCompletionText) + if err != nil { + return fmt.Errorf("error creating zsh completion template: %v", err) } - maxDepthSub := 0 - for _, s := range c.Commands() { - subDepth := maxDepth(s) - if subDepth > maxDepthSub { - maxDepthSub = subDepth + return tmpl.Execute(w, c.Root()) +} + +// MarkZshCompPositionalArgumentFile marks the specified argument (first +// argument is 1) as completed by file selection. patterns (e.g. "*.txt") are +// optional - if not provided the completion will search for all files. +func (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, patterns ...string) error { + if argPosition < 1 { + return fmt.Errorf("Invalid argument position (%d)", argPosition) + } + annotation, err := c.zshCompGetArgsAnnotations() + if err != nil { + return err + } + if c.zshcompArgsAnnotationnIsDuplicatePosition(annotation, argPosition) { + return fmt.Errorf("Duplicate annotation for positional argument at index %d", argPosition) + } + annotation[argPosition] = zshCompArgHint{ + Tipe: zshCompArgumentFilenameComp, + Options: patterns, + } + return c.zshCompSetArgsAnnotations(annotation) +} + +// MarkZshCompPositionalArgumentWords marks the specified positional argument +// (first argument is 1) as completed by the provided words. At east one word +// must be provided, spaces within words will be offered completion with +// "word\ word". +func (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, words ...string) error { + if argPosition < 1 { + return fmt.Errorf("Invalid argument position (%d)", argPosition) + } + if len(words) == 0 { + return fmt.Errorf("Trying to set empty word list for positional argument %d", argPosition) + } + annotation, err := c.zshCompGetArgsAnnotations() + if err != nil { + return err + } + if c.zshcompArgsAnnotationnIsDuplicatePosition(annotation, argPosition) { + return fmt.Errorf("Duplicate annotation for positional argument at index %d", argPosition) + } + annotation[argPosition] = zshCompArgHint{ + Tipe: zshCompArgumentWordComp, + Options: words, + } + return c.zshCompSetArgsAnnotations(annotation) +} + +func zshCompExtractArgumentCompletionHintsForRendering(c *Command) ([]string, error) { + var result []string + annotation, err := c.zshCompGetArgsAnnotations() + if err != nil { + return nil, err + } + for k, v := range annotation { + s, err := zshCompRenderZshCompArgHint(k, v) + if err != nil { + return nil, err + } + result = append(result, s) + } + if len(c.ValidArgs) > 0 { + if _, positionOneExists := annotation[1]; !positionOneExists { + s, err := zshCompRenderZshCompArgHint(1, zshCompArgHint{ + Tipe: zshCompArgumentWordComp, + Options: c.ValidArgs, + }) + if err != nil { + return nil, err + } + result = append(result, s) } } - return 1 + maxDepthSub + sort.Strings(result) + return result, nil } -func writeLevelMapping(w io.Writer, numLevels int) { - fmt.Fprintln(w, `_arguments \`) - for i := 1; i <= numLevels; i++ { - fmt.Fprintf(w, ` '%d: :->level%d' \`, i, i) - fmt.Fprintln(w) - } - fmt.Fprintf(w, ` '%d: :%s'`, numLevels+1, "_files") - fmt.Fprintln(w) -} - -func writeLevelCases(w io.Writer, maxDepth int, root *Command) { - fmt.Fprintln(w, "case $state in") - defer fmt.Fprintln(w, "esac") - - for i := 1; i <= maxDepth; i++ { - fmt.Fprintf(w, " level%d)\n", i) - writeLevel(w, root, i) - fmt.Fprintln(w, " ;;") - } - fmt.Fprintln(w, " *)") - fmt.Fprintln(w, " _arguments '*: :_files'") - fmt.Fprintln(w, " ;;") -} - -func writeLevel(w io.Writer, root *Command, i int) { - fmt.Fprintf(w, " case $words[%d] in\n", i) - defer fmt.Fprintln(w, " esac") - - commands := filterByLevel(root, i) - byParent := groupByParent(commands) - - for p, c := range byParent { - names := names(c) - fmt.Fprintf(w, " %s)\n", p) - fmt.Fprintf(w, " _arguments '%d: :(%s)'\n", i, strings.Join(names, " ")) - fmt.Fprintln(w, " ;;") - } - fmt.Fprintln(w, " *)") - fmt.Fprintln(w, " _arguments '*: :_files'") - fmt.Fprintln(w, " ;;") - -} - -func filterByLevel(c *Command, l int) []*Command { - cs := make([]*Command, 0) - if l == 0 { - cs = append(cs, c) - return cs - } - for _, s := range c.Commands() { - cs = append(cs, filterByLevel(s, l-1)...) - } - return cs -} - -func groupByParent(commands []*Command) map[string][]*Command { - m := make(map[string][]*Command) - for _, c := range commands { - parent := c.Parent() - if parent == nil { - continue +func zshCompRenderZshCompArgHint(i int, z zshCompArgHint) (string, error) { + switch t := z.Tipe; t { + case zshCompArgumentFilenameComp: + var globs []string + for _, g := range z.Options { + globs = append(globs, fmt.Sprintf(`-g "%s"`, g)) } - m[parent.Name()] = append(m[parent.Name()], c) + return fmt.Sprintf(`'%d: :_files %s'`, i, strings.Join(globs, " ")), nil + case zshCompArgumentWordComp: + var words []string + for _, w := range z.Options { + words = append(words, fmt.Sprintf("%q", w)) + } + return fmt.Sprintf(`'%d: :(%s)'`, i, strings.Join(words, " ")), nil + default: + return "", fmt.Errorf("Invalid zsh argument completion annotation: %s", t) } - return m } -func names(commands []*Command) []string { - ns := make([]string, len(commands)) - for i, c := range commands { - ns[i] = c.Name() - } - return ns +func (c *Command) zshcompArgsAnnotationnIsDuplicatePosition(annotation zshCompArgsAnnotation, position int) bool { + _, dup := annotation[position] + return dup +} + +func (c *Command) zshCompGetArgsAnnotations() (zshCompArgsAnnotation, error) { + annotation := make(zshCompArgsAnnotation) + annotationString, ok := c.Annotations[zshCompArgumentAnnotation] + if !ok { + return annotation, nil + } + err := json.Unmarshal([]byte(annotationString), &annotation) + if err != nil { + return annotation, fmt.Errorf("Error unmarshaling zsh argument annotation: %v", err) + } + return annotation, nil +} + +func (c *Command) zshCompSetArgsAnnotations(annotation zshCompArgsAnnotation) error { + jsn, err := json.Marshal(annotation) + if err != nil { + return fmt.Errorf("Error marshaling zsh argument annotation: %v", err) + } + if c.Annotations == nil { + c.Annotations = make(map[string]string) + } + c.Annotations[zshCompArgumentAnnotation] = string(jsn) + return nil +} + +func zshCompGenFuncName(c *Command) string { + if c.HasParent() { + return zshCompGenFuncName(c.Parent()) + "_" + c.Name() + } + return "_" + c.Name() +} + +func zshCompExtractFlag(c *Command) []*pflag.Flag { + var flags []*pflag.Flag + c.LocalFlags().VisitAll(func(f *pflag.Flag) { + if !f.Hidden { + flags = append(flags, f) + } + }) + c.InheritedFlags().VisitAll(func(f *pflag.Flag) { + if !f.Hidden { + flags = append(flags, f) + } + }) + return flags +} + +// zshCompGenFlagEntryForArguments returns an entry that matches _arguments +// zsh-completion parameters. It's too complicated to generate in a template. +func zshCompGenFlagEntryForArguments(f *pflag.Flag) string { + if f.Name == "" || f.Shorthand == "" { + return zshCompGenFlagEntryForSingleOptionFlag(f) + } + return zshCompGenFlagEntryForMultiOptionFlag(f) +} + +func zshCompGenFlagEntryForSingleOptionFlag(f *pflag.Flag) string { + var option, multiMark, extras string + + if zshCompFlagCouldBeSpecifiedMoreThenOnce(f) { + multiMark = "*" + } + + option = "--" + f.Name + if option == "--" { + option = "-" + f.Shorthand + } + extras = zshCompGenFlagEntryExtras(f) + + return fmt.Sprintf(`'%s%s[%s]%s'`, multiMark, option, zshCompQuoteFlagDescription(f.Usage), extras) +} + +func zshCompGenFlagEntryForMultiOptionFlag(f *pflag.Flag) string { + var options, parenMultiMark, curlyMultiMark, extras string + + if zshCompFlagCouldBeSpecifiedMoreThenOnce(f) { + parenMultiMark = "*" + curlyMultiMark = "\\*" + } + + options = fmt.Sprintf(`'(%s-%s %s--%s)'{%s-%s,%s--%s}`, + parenMultiMark, f.Shorthand, parenMultiMark, f.Name, curlyMultiMark, f.Shorthand, curlyMultiMark, f.Name) + extras = zshCompGenFlagEntryExtras(f) + + return fmt.Sprintf(`%s'[%s]%s'`, options, zshCompQuoteFlagDescription(f.Usage), extras) +} + +func zshCompGenFlagEntryExtras(f *pflag.Flag) string { + if f.NoOptDefVal != "" { + return "" + } + + extras := ":" // allow options for flag (even without assistance) + for key, values := range f.Annotations { + switch key { + case zshCompDirname: + extras = fmt.Sprintf(":filename:_files -g %q", values[0]) + case BashCompFilenameExt: + extras = ":filename:_files" + for _, pattern := range values { + extras = extras + fmt.Sprintf(` -g "%s"`, pattern) + } + } + } + + return extras +} + +func zshCompFlagCouldBeSpecifiedMoreThenOnce(f *pflag.Flag) bool { + return strings.Contains(f.Value.Type(), "Slice") || + strings.Contains(f.Value.Type(), "Array") +} + +func zshCompQuoteFlagDescription(s string) string { + return strings.Replace(s, "'", `'\''`, -1) } diff --git a/vendor/github.com/spf13/cobra/zsh_completions.md b/vendor/github.com/spf13/cobra/zsh_completions.md new file mode 100644 index 000000000..df9c2eac9 --- /dev/null +++ b/vendor/github.com/spf13/cobra/zsh_completions.md @@ -0,0 +1,39 @@ +## Generating Zsh Completion for your cobra.Command + +Cobra supports native Zsh completion generated from the root `cobra.Command`. +The generated completion script should be put somewhere in your `$fpath` named +`_`. + +### What's Supported + +* Completion for all non-hidden subcommands using their `.Short` description. +* Completion for all non-hidden flags using the following rules: + * Filename completion works by marking the flag with `cmd.MarkFlagFilename...` + family of commands. + * The requirement for argument to the flag is decided by the `.NoOptDefVal` + flag value - if it's empty then completion will expect an argument. + * Flags of one of the various `*Array` and `*Slice` types supports multiple + specifications (with or without argument depending on the specific type). +* Completion of positional arguments using the following rules: + * Argument position for all options below starts at `1`. If argument position + `0` is requested it will raise an error. + * Use `command.MarkZshCompPositionalArgumentFile` to complete filenames. Glob + patterns (e.g. `"*.log"`) are optional - if not specified it will offer to + complete all file types. + * Use `command.MarkZshCompPositionalArgumentWords` to offer specific words for + completion. At least one word is required. + * It's possible to specify completion for some arguments and leave some + unspecified (e.g. offer words for second argument but nothing for first + argument). This will cause no completion for first argument but words + completion for second argument. + * If no argument completion was specified for 1st argument (but optionally was + specified for 2nd) and the command has `ValidArgs` it will be used as + completion options for 1st argument. + * Argument completions only offered for commands with no subcommands. + +### What's not yet Supported + +* Custom completion scripts are not supported yet (We should probably create zsh + specific one, doesn't make sense to re-use the bash one as the functions will + be different). +* Whatever other feature you're looking for and doesn't exist :) diff --git a/vendor/github.com/t3rm1n4l/go-mega/LICENSE b/vendor/github.com/t3rm1n4l/go-mega/LICENSE new file mode 100644 index 000000000..776b55935 --- /dev/null +++ b/vendor/github.com/t3rm1n4l/go-mega/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Sarath Lakshman + +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/go.opencensus.io/Makefile b/vendor/go.opencensus.io/Makefile index e2f2ed59e..457866cb1 100644 --- a/vendor/go.opencensus.io/Makefile +++ b/vendor/go.opencensus.io/Makefile @@ -15,6 +15,7 @@ EMBEDMD=embedmd # TODO decide if we need to change these names. TRACE_ID_LINT_EXCEPTION="type name will be used as trace.TraceID by other packages" TRACE_OPTION_LINT_EXCEPTION="type name will be used as trace.TraceOptions by other packages" +README_FILES := $(shell find . -name '*README.md' | sort | tr '\n' ' ') .DEFAULT_GOAL := fmt-lint-vet-embedmd-test @@ -79,7 +80,7 @@ vet: .PHONY: embedmd embedmd: - @EMBEDMDOUT=`$(EMBEDMD) -d README.md 2>&1`; \ + @EMBEDMDOUT=`$(EMBEDMD) -d $(README_FILES) 2>&1`; \ if [ "$$EMBEDMDOUT" ]; then \ echo "$(EMBEDMD) FAILED => embedmd the following files:\n"; \ echo "$$EMBEDMDOUT\n"; \ diff --git a/vendor/go.opencensus.io/README.md b/vendor/go.opencensus.io/README.md index 3f40ed5cb..fabab2e06 100644 --- a/vendor/go.opencensus.io/README.md +++ b/vendor/go.opencensus.io/README.md @@ -253,10 +253,10 @@ release in which the functionality was marked *Deprecated*. [new-ex]: https://godoc.org/go.opencensus.io/tag#example-NewMap [new-replace-ex]: https://godoc.org/go.opencensus.io/tag#example-NewMap--Replace -[exporter-prom]: https://godoc.org/go.opencensus.io/exporter/prometheus +[exporter-prom]: https://godoc.org/contrib.go.opencensus.io/exporter/prometheus [exporter-stackdriver]: https://godoc.org/contrib.go.opencensus.io/exporter/stackdriver -[exporter-zipkin]: https://godoc.org/go.opencensus.io/exporter/zipkin -[exporter-jaeger]: https://godoc.org/go.opencensus.io/exporter/jaeger +[exporter-zipkin]: https://godoc.org/contrib.go.opencensus.io/exporter/zipkin +[exporter-jaeger]: https://godoc.org/contrib.go.opencensus.io/exporter/jaeger [exporter-xray]: https://github.com/census-ecosystem/opencensus-go-exporter-aws [exporter-datadog]: https://github.com/DataDog/opencensus-go-exporter-datadog [exporter-graphite]: https://github.com/census-ecosystem/opencensus-go-exporter-graphite diff --git a/vendor/go.opencensus.io/go.mod b/vendor/go.opencensus.io/go.mod index cc9febc02..cb4de80f3 100644 --- a/vendor/go.opencensus.io/go.mod +++ b/vendor/go.opencensus.io/go.mod @@ -1,13 +1,12 @@ module go.opencensus.io require ( - github.com/apache/thrift v0.12.0 - github.com/golang/protobuf v1.2.0 - github.com/google/go-cmp v0.2.0 - github.com/hashicorp/golang-lru v0.5.0 - github.com/openzipkin/zipkin-go v0.1.6 - github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829 - golang.org/x/net v0.0.0-20190311183353-d8887717615a - google.golang.org/api v0.3.1 - google.golang.org/grpc v1.19.0 + github.com/golang/protobuf v1.3.1 + github.com/google/go-cmp v0.3.0 + github.com/hashicorp/golang-lru v0.5.1 + golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09 + golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd // indirect + golang.org/x/text v0.3.2 // indirect + google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb // indirect + google.golang.org/grpc v1.20.1 ) diff --git a/vendor/go.opencensus.io/go.sum b/vendor/go.opencensus.io/go.sum index 954fadf79..0b948c2b4 100644 --- a/vendor/go.opencensus.io/go.sum +++ b/vendor/go.opencensus.io/go.sum @@ -1,127 +1,61 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/apache/thrift v0.12.0 h1:pODnxUFNcjP9UTLZGTdeh+j16A8lJbRvD3rOtrk/7bs= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/openzipkin/zipkin-go v0.1.6 h1:yXiysv1CSK7Q5yjGy1710zZGnsbMUIjluWBxtLXHPBo= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829 h1:D+CiwcpGTW6pL6bv6KI3KbyEyCKyS+1JWS2h8PNDnGA= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f h1:BVwpUVJDADN2ufcGik7W992pyps0wZ888b/y9GXcLTU= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1 h1:/K3IL0Z1quvmJ7X0A1AwNEK7CRkVK3YwfOU/QAL4WGg= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 h1:ulvT7fqt0yHWzpJwI57MezWnYDVpCAYBVuYst/L+fAY= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09 h1:KaQtG+aDELoNmXYas3TVkGNYRuq8JQ1aa7LJt8EXVyo= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6 h1:bjcUS9ztw9kFmmIxJInhon/0Is3p+EHBKNgquIzo1OI= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd h1:r7DufRZuZbWB7j439YfAzP8RPDa9unLkpwQKUYbIMPI= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -google.golang.org/api v0.3.1 h1:oJra/lMfmtm13/rgY/8i3MzjFWYXvQIAKjQ3HqofMk8= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19 h1:Lj2SnHtxkRGJDqnGaSjo+CCdIieEnwVazbOXILwQemk= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb h1:i1Ppqkc3WQXikh8bXiwHqAN5Rv3/qDCcRk0/Otx73BY= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/go.opencensus.io/metric/metricdata/exemplar.go b/vendor/go.opencensus.io/metric/metricdata/exemplar.go index cdbeef058..12695ce2d 100644 --- a/vendor/go.opencensus.io/metric/metricdata/exemplar.go +++ b/vendor/go.opencensus.io/metric/metricdata/exemplar.go @@ -18,6 +18,11 @@ import ( "time" ) +// Exemplars keys. +const ( + AttachmentKeySpanContext = "SpanContext" +) + // Exemplar is an example data point associated with each bucket of a // distribution type aggregation. // diff --git a/vendor/go.opencensus.io/metric/metricdata/label.go b/vendor/go.opencensus.io/metric/metricdata/label.go index 87c55b9c8..aadae41e6 100644 --- a/vendor/go.opencensus.io/metric/metricdata/label.go +++ b/vendor/go.opencensus.io/metric/metricdata/label.go @@ -14,6 +14,13 @@ package metricdata +// LabelKey represents key of a label. It has optional +// description attribute. +type LabelKey struct { + Key string + Description string +} + // LabelValue represents the value of a label. // The zero value represents a missing label value, which may be treated // differently to an empty string value by some back ends. diff --git a/vendor/go.opencensus.io/metric/metricdata/metric.go b/vendor/go.opencensus.io/metric/metricdata/metric.go index 6ccdec583..8293712c7 100644 --- a/vendor/go.opencensus.io/metric/metricdata/metric.go +++ b/vendor/go.opencensus.io/metric/metricdata/metric.go @@ -22,11 +22,11 @@ import ( // Descriptor holds metadata about a metric. type Descriptor struct { - Name string // full name of the metric - Description string // human-readable description - Unit Unit // units for the measure - Type Type // type of measure - LabelKeys []string // label keys + Name string // full name of the metric + Description string // human-readable description + Unit Unit // units for the measure + Type Type // type of measure + LabelKeys []LabelKey // label keys } // Metric represents a quantity measured against a resource with different diff --git a/vendor/go.opencensus.io/opencensus.go b/vendor/go.opencensus.io/opencensus.go index d2565f1e2..626d73645 100644 --- a/vendor/go.opencensus.io/opencensus.go +++ b/vendor/go.opencensus.io/opencensus.go @@ -17,5 +17,5 @@ package opencensus // import "go.opencensus.io" // Version is the current release version of OpenCensus in use. func Version() string { - return "0.21.0" + return "0.22.0" } diff --git a/vendor/go.opencensus.io/plugin/ochttp/server.go b/vendor/go.opencensus.io/plugin/ochttp/server.go index 5fe15e89f..4f6404fa7 100644 --- a/vendor/go.opencensus.io/plugin/ochttp/server.go +++ b/vendor/go.opencensus.io/plugin/ochttp/server.go @@ -124,6 +124,12 @@ func (h *Handler) startTrace(w http.ResponseWriter, r *http.Request) (*http.Requ } } span.AddAttributes(requestAttrs(r)...) + if r.Body == nil { + // TODO: Handle cases where ContentLength is not set. + } else if r.ContentLength > 0 { + span.AddMessageReceiveEvent(0, /* TODO: messageID */ + int64(r.ContentLength), -1) + } return r.WithContext(ctx), span.End } @@ -201,6 +207,9 @@ func (t *trackingResponseWriter) Header() http.Header { func (t *trackingResponseWriter) Write(data []byte) (int, error) { n, err := t.writer.Write(data) t.respSize += int64(n) + // Add message event for request bytes sent. + span := trace.FromContext(t.ctx) + span.AddMessageSendEvent(0 /* TODO: messageID */, int64(n), -1) return n, err } diff --git a/vendor/go.opencensus.io/stats/record.go b/vendor/go.opencensus.io/stats/record.go index d2af0a60d..ad4691184 100644 --- a/vendor/go.opencensus.io/stats/record.go +++ b/vendor/go.opencensus.io/stats/record.go @@ -18,6 +18,7 @@ package stats import ( "context" + "go.opencensus.io/metric/metricdata" "go.opencensus.io/stats/internal" "go.opencensus.io/tag" ) @@ -30,28 +31,48 @@ func init() { } } +type recordOptions struct { + attachments metricdata.Attachments + mutators []tag.Mutator + measurements []Measurement +} + +// WithAttachments applies provided exemplar attachments. +func WithAttachments(attachments metricdata.Attachments) Options { + return func(ro *recordOptions) { + ro.attachments = attachments + } +} + +// WithTags applies provided tag mutators. +func WithTags(mutators ...tag.Mutator) Options { + return func(ro *recordOptions) { + ro.mutators = mutators + } +} + +// WithMeasurements applies provided measurements. +func WithMeasurements(measurements ...Measurement) Options { + return func(ro *recordOptions) { + ro.measurements = measurements + } +} + +// Options apply changes to recordOptions. +type Options func(*recordOptions) + +func createRecordOption(ros ...Options) *recordOptions { + o := &recordOptions{} + for _, ro := range ros { + ro(o) + } + return o +} + // Record records one or multiple measurements with the same context at once. // If there are any tags in the context, measurements will be tagged with them. func Record(ctx context.Context, ms ...Measurement) { - recorder := internal.DefaultRecorder - if recorder == nil { - return - } - if len(ms) == 0 { - return - } - record := false - for _, m := range ms { - if m.desc.subscribed() { - record = true - break - } - } - if !record { - return - } - // TODO(songy23): fix attachments. - recorder(tag.FromContext(ctx), ms, map[string]interface{}{}) + RecordWithOptions(ctx, WithMeasurements(ms...)) } // RecordWithTags records one or multiple measurements at once. @@ -60,10 +81,37 @@ func Record(ctx context.Context, ms ...Measurement) { // RecordWithTags is useful if you want to record with tag mutations but don't want // to propagate the mutations in the context. func RecordWithTags(ctx context.Context, mutators []tag.Mutator, ms ...Measurement) error { - ctx, err := tag.New(ctx, mutators...) - if err != nil { - return err + return RecordWithOptions(ctx, WithTags(mutators...), WithMeasurements(ms...)) +} + +// RecordWithOptions records measurements from the given options (if any) against context +// and tags and attachments in the options (if any). +// If there are any tags in the context, measurements will be tagged with them. +func RecordWithOptions(ctx context.Context, ros ...Options) error { + o := createRecordOption(ros...) + if len(o.measurements) == 0 { + return nil } - Record(ctx, ms...) + recorder := internal.DefaultRecorder + if recorder == nil { + return nil + } + record := false + for _, m := range o.measurements { + if m.desc.subscribed() { + record = true + break + } + } + if !record { + return nil + } + if len(o.mutators) > 0 { + var err error + if ctx, err = tag.New(ctx, o.mutators...); err != nil { + return err + } + } + recorder(tag.FromContext(ctx), o.measurements, o.attachments) return nil } diff --git a/vendor/go.opencensus.io/stats/view/view_to_metric.go b/vendor/go.opencensus.io/stats/view/view_to_metric.go index 284299faf..f67b5c464 100644 --- a/vendor/go.opencensus.io/stats/view/view_to_metric.go +++ b/vendor/go.opencensus.io/stats/view/view_to_metric.go @@ -73,10 +73,10 @@ func getType(v *View) metricdata.Type { } } -func getLableKeys(v *View) []string { - labelKeys := []string{} +func getLabelKeys(v *View) []metricdata.LabelKey { + labelKeys := []metricdata.LabelKey{} for _, k := range v.TagKeys { - labelKeys = append(labelKeys, k.Name()) + labelKeys = append(labelKeys, metricdata.LabelKey{Key: k.Name()}) } return labelKeys } @@ -87,14 +87,23 @@ func viewToMetricDescriptor(v *View) *metricdata.Descriptor { Description: v.Description, Unit: getUnit(v.Measure.Unit()), Type: getType(v), - LabelKeys: getLableKeys(v), + LabelKeys: getLabelKeys(v), } } -func toLabelValues(row *Row) []metricdata.LabelValue { +func toLabelValues(row *Row, expectedKeys []metricdata.LabelKey) []metricdata.LabelValue { labelValues := []metricdata.LabelValue{} + tagMap := make(map[string]string) for _, tag := range row.Tags { - labelValues = append(labelValues, metricdata.NewLabelValue(tag.Value)) + tagMap[tag.Key.Name()] = tag.Value + } + + for _, key := range expectedKeys { + if val, ok := tagMap[key.Key]; ok { + labelValues = append(labelValues, metricdata.NewLabelValue(val)) + } else { + labelValues = append(labelValues, metricdata.LabelValue{}) + } } return labelValues } @@ -102,7 +111,7 @@ func toLabelValues(row *Row) []metricdata.LabelValue { func rowToTimeseries(v *viewInternal, row *Row, now time.Time, startTime time.Time) *metricdata.TimeSeries { return &metricdata.TimeSeries{ Points: []metricdata.Point{row.Data.toPoint(v.metricDescriptor.Type, now)}, - LabelValues: toLabelValues(row), + LabelValues: toLabelValues(row, v.metricDescriptor.LabelKeys), StartTime: startTime, } } diff --git a/vendor/go.opencensus.io/stats/view/worker.go b/vendor/go.opencensus.io/stats/view/worker.go index 37279b39e..2f3c018af 100644 --- a/vendor/go.opencensus.io/stats/view/worker.go +++ b/vendor/go.opencensus.io/stats/view/worker.go @@ -236,6 +236,8 @@ func (w *worker) reportView(v *viewInternal, now time.Time) { } func (w *worker) reportUsage(now time.Time) { + w.mu.Lock() + defer w.mu.Unlock() for _, v := range w.views { w.reportView(v, now) } diff --git a/vendor/go.opencensus.io/stats/view/worker_commands.go b/vendor/go.opencensus.io/stats/view/worker_commands.go index ba6203a50..0267e179a 100644 --- a/vendor/go.opencensus.io/stats/view/worker_commands.go +++ b/vendor/go.opencensus.io/stats/view/worker_commands.go @@ -121,6 +121,8 @@ type retrieveDataResp struct { } func (cmd *retrieveDataReq) handleCommand(w *worker) { + w.mu.Lock() + defer w.mu.Unlock() vi, ok := w.views[cmd.v] if !ok { cmd.c <- &retrieveDataResp{ @@ -153,6 +155,8 @@ type recordReq struct { } func (cmd *recordReq) handleCommand(w *worker) { + w.mu.Lock() + defer w.mu.Unlock() for _, m := range cmd.ms { if (m == stats.Measurement{}) { // not registered continue diff --git a/vendor/go.opencensus.io/tag/key.go b/vendor/go.opencensus.io/tag/key.go index ebbed9500..4e63d08c9 100644 --- a/vendor/go.opencensus.io/tag/key.go +++ b/vendor/go.opencensus.io/tag/key.go @@ -29,6 +29,16 @@ func NewKey(name string) (Key, error) { return Key{name: name}, nil } +// MustNewKey creates or retrieves a string key identified by name. +// An invalid key name raises a panic. +func MustNewKey(name string) Key { + k, err := NewKey(name) + if err != nil { + panic(err) + } + return k +} + // Name returns the name of the key. func (k Key) Name() string { return k.name diff --git a/vendor/go.opencensus.io/tag/map.go b/vendor/go.opencensus.io/tag/map.go index 5b72ba6ad..0272ef85a 100644 --- a/vendor/go.opencensus.io/tag/map.go +++ b/vendor/go.opencensus.io/tag/map.go @@ -28,10 +28,15 @@ type Tag struct { Value string } +type tagContent struct { + value string + m metadatas +} + // Map is a map of tags. Use New to create a context containing // a new Map. type Map struct { - m map[Key]string + m map[Key]tagContent } // Value returns the value for the key if a value for the key exists. @@ -40,7 +45,7 @@ func (m *Map) Value(k Key) (string, bool) { return "", false } v, ok := m.m[k] - return v, ok + return v.value, ok } func (m *Map) String() string { @@ -62,21 +67,21 @@ func (m *Map) String() string { return buffer.String() } -func (m *Map) insert(k Key, v string) { +func (m *Map) insert(k Key, v string, md metadatas) { if _, ok := m.m[k]; ok { return } - m.m[k] = v + m.m[k] = tagContent{value: v, m: md} } -func (m *Map) update(k Key, v string) { +func (m *Map) update(k Key, v string, md metadatas) { if _, ok := m.m[k]; ok { - m.m[k] = v + m.m[k] = tagContent{value: v, m: md} } } -func (m *Map) upsert(k Key, v string) { - m.m[k] = v +func (m *Map) upsert(k Key, v string, md metadatas) { + m.m[k] = tagContent{value: v, m: md} } func (m *Map) delete(k Key) { @@ -84,7 +89,7 @@ func (m *Map) delete(k Key) { } func newMap() *Map { - return &Map{m: make(map[Key]string)} + return &Map{m: make(map[Key]tagContent)} } // Mutator modifies a tag map. @@ -95,13 +100,17 @@ type Mutator interface { // Insert returns a mutator that inserts a // value associated with k. If k already exists in the tag map, // mutator doesn't update the value. -func Insert(k Key, v string) Mutator { +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Insert(k Key, v string, mds ...Metadata) Mutator { return &mutator{ fn: func(m *Map) (*Map, error) { if !checkValue(v) { return nil, errInvalidValue } - m.insert(k, v) + m.insert(k, v, createMetadatas(mds...)) return m, nil }, } @@ -110,13 +119,17 @@ func Insert(k Key, v string) Mutator { // Update returns a mutator that updates the // value of the tag associated with k with v. If k doesn't // exists in the tag map, the mutator doesn't insert the value. -func Update(k Key, v string) Mutator { +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Update(k Key, v string, mds ...Metadata) Mutator { return &mutator{ fn: func(m *Map) (*Map, error) { if !checkValue(v) { return nil, errInvalidValue } - m.update(k, v) + m.update(k, v, createMetadatas(mds...)) return m, nil }, } @@ -126,18 +139,37 @@ func Update(k Key, v string) Mutator { // value of the tag associated with k with v. It inserts the // value if k doesn't exist already. It mutates the value // if k already exists. -func Upsert(k Key, v string) Mutator { +// Metadata applies metadata to the tag. It is optional. +// Metadatas are applied in the order in which it is provided. +// If more than one metadata updates the same attribute then +// the update from the last metadata prevails. +func Upsert(k Key, v string, mds ...Metadata) Mutator { return &mutator{ fn: func(m *Map) (*Map, error) { if !checkValue(v) { return nil, errInvalidValue } - m.upsert(k, v) + m.upsert(k, v, createMetadatas(mds...)) return m, nil }, } } +func createMetadatas(mds ...Metadata) metadatas { + var metas metadatas + if len(mds) > 0 { + for _, md := range mds { + if md != nil { + md(&metas) + } + } + } else { + WithTTL(TTLUnlimitedPropagation)(&metas) + } + return metas + +} + // Delete returns a mutator that deletes // the value associated with k. func Delete(k Key) Mutator { @@ -160,10 +192,10 @@ func New(ctx context.Context, mutator ...Mutator) (context.Context, error) { if !checkKeyName(k.Name()) { return ctx, fmt.Errorf("key:%q: %v", k, errInvalidKeyName) } - if !checkValue(v) { + if !checkValue(v.value) { return ctx, fmt.Errorf("key:%q value:%q: %v", k.Name(), v, errInvalidValue) } - m.insert(k, v) + m.insert(k, v.value, v.m) } } var err error diff --git a/vendor/go.opencensus.io/tag/map_codec.go b/vendor/go.opencensus.io/tag/map_codec.go index e88e72777..f8b582761 100644 --- a/vendor/go.opencensus.io/tag/map_codec.go +++ b/vendor/go.opencensus.io/tag/map_codec.go @@ -170,9 +170,11 @@ func Encode(m *Map) []byte { } eg.writeByte(byte(tagsVersionID)) for k, v := range m.m { - eg.writeByte(byte(keyTypeString)) - eg.writeStringWithVarintLen(k.name) - eg.writeBytesWithVarintLen([]byte(v)) + if v.m.ttl.ttl == valueTTLUnlimitedPropagation { + eg.writeByte(byte(keyTypeString)) + eg.writeStringWithVarintLen(k.name) + eg.writeBytesWithVarintLen([]byte(v.value)) + } } return eg.bytes() } @@ -190,7 +192,7 @@ func Decode(bytes []byte) (*Map, error) { // DecodeEach decodes the given serialized tag map, calling handler for each // tag key and value decoded. -func DecodeEach(bytes []byte, fn func(key Key, val string)) error { +func DecodeEach(bytes []byte, fn func(key Key, val string, md metadatas)) error { eg := &encoderGRPC{ buf: bytes, } @@ -228,7 +230,7 @@ func DecodeEach(bytes []byte, fn func(key Key, val string)) error { if !checkValue(val) { return errInvalidValue } - fn(key, val) + fn(key, val, createMetadatas(WithTTL(TTLUnlimitedPropagation))) if err != nil { return err } diff --git a/vendor/go.opencensus.io/tag/metadata.go b/vendor/go.opencensus.io/tag/metadata.go new file mode 100644 index 000000000..6571a583e --- /dev/null +++ b/vendor/go.opencensus.io/tag/metadata.go @@ -0,0 +1,52 @@ +// Copyright 2019, OpenCensus 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 tag + +const ( + // valueTTLNoPropagation prevents tag from propagating. + valueTTLNoPropagation = 0 + + // valueTTLUnlimitedPropagation allows tag to propagate without any limits on number of hops. + valueTTLUnlimitedPropagation = -1 +) + +// TTL is metadata that specifies number of hops a tag can propagate. +// Details about TTL metadata is specified at https://github.com/census-instrumentation/opencensus-specs/blob/master/tags/TagMap.md#tagmetadata +type TTL struct { + ttl int +} + +var ( + // TTLUnlimitedPropagation is TTL metadata that allows tag to propagate without any limits on number of hops. + TTLUnlimitedPropagation = TTL{ttl: valueTTLUnlimitedPropagation} + + // TTLNoPropagation is TTL metadata that prevents tag from propagating. + TTLNoPropagation = TTL{ttl: valueTTLNoPropagation} +) + +type metadatas struct { + ttl TTL +} + +// Metadata applies metadatas specified by the function. +type Metadata func(*metadatas) + +// WithTTL applies metadata with provided ttl. +func WithTTL(ttl TTL) Metadata { + return func(m *metadatas) { + m.ttl = ttl + } +} diff --git a/vendor/go.opencensus.io/tag/profile_19.go b/vendor/go.opencensus.io/tag/profile_19.go index f81cd0b4a..b34d95e34 100644 --- a/vendor/go.opencensus.io/tag/profile_19.go +++ b/vendor/go.opencensus.io/tag/profile_19.go @@ -25,7 +25,7 @@ func do(ctx context.Context, f func(ctx context.Context)) { m := FromContext(ctx) keyvals := make([]string, 0, 2*len(m.m)) for k, v := range m.m { - keyvals = append(keyvals, k.Name(), v) + keyvals = append(keyvals, k.Name(), v.value) } pprof.Do(ctx, pprof.Labels(keyvals...), f) } diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519.go b/vendor/golang.org/x/crypto/ed25519/ed25519.go index d6f683ba3..c7f8c7e64 100644 --- a/vendor/golang.org/x/crypto/ed25519/ed25519.go +++ b/vendor/golang.org/x/crypto/ed25519/ed25519.go @@ -2,6 +2,11 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// In Go 1.13, the ed25519 package was promoted to the standard library as +// crypto/ed25519, and this package became a wrapper for the standard library one. +// +// +build !go1.13 + // Package ed25519 implements the Ed25519 signature algorithm. See // https://ed25519.cr.yp.to/. // diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519_go113.go b/vendor/golang.org/x/crypto/ed25519/ed25519_go113.go new file mode 100644 index 000000000..d1448d8d2 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/ed25519_go113.go @@ -0,0 +1,73 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.13 + +// Package ed25519 implements the Ed25519 signature algorithm. See +// https://ed25519.cr.yp.to/. +// +// These functions are also compatible with the “Ed25519” function defined in +// RFC 8032. However, unlike RFC 8032's formulation, this package's private key +// representation includes a public key suffix to make multiple signing +// operations with the same key more efficient. This package refers to the RFC +// 8032 private key as the “seed”. +// +// Beginning with Go 1.13, the functionality of this package was moved to the +// standard library as crypto/ed25519. This package only acts as a compatibility +// wrapper. +package ed25519 + +import ( + "crypto/ed25519" + "io" +) + +const ( + // PublicKeySize is the size, in bytes, of public keys as used in this package. + PublicKeySize = 32 + // PrivateKeySize is the size, in bytes, of private keys as used in this package. + PrivateKeySize = 64 + // SignatureSize is the size, in bytes, of signatures generated and verified by this package. + SignatureSize = 64 + // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. + SeedSize = 32 +) + +// PublicKey is the type of Ed25519 public keys. +// +// This type is an alias for crypto/ed25519's PublicKey type. +// See the crypto/ed25519 package for the methods on this type. +type PublicKey = ed25519.PublicKey + +// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer. +// +// This type is an alias for crypto/ed25519's PrivateKey type. +// See the crypto/ed25519 package for the methods on this type. +type PrivateKey = ed25519.PrivateKey + +// GenerateKey generates a public/private key pair using entropy from rand. +// If rand is nil, crypto/rand.Reader will be used. +func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { + return ed25519.GenerateKey(rand) +} + +// NewKeyFromSeed calculates a private key from a seed. It will panic if +// len(seed) is not SeedSize. This function is provided for interoperability +// with RFC 8032. RFC 8032's private keys correspond to seeds in this +// package. +func NewKeyFromSeed(seed []byte) PrivateKey { + return ed25519.NewKeyFromSeed(seed) +} + +// Sign signs the message with privateKey and returns a signature. It will +// panic if len(privateKey) is not PrivateKeySize. +func Sign(privateKey PrivateKey, message []byte) []byte { + return ed25519.Sign(privateKey, message) +} + +// Verify reports whether sig is a valid signature of message by publicKey. It +// will panic if len(publicKey) is not PublicKeySize. +func Verify(publicKey PublicKey, message, sig []byte) bool { + return ed25519.Verify(publicKey, message, sig) +} diff --git a/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s b/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s index 8815cb00d..cde3fc989 100644 --- a/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s +++ b/vendor/golang.org/x/crypto/internal/chacha20/asm_ppc64le.s @@ -135,7 +135,7 @@ TEXT ·chaCha20_ctr32_vmx(SB),NOSPLIT|NOFRAME,$0 MOVD inp+8(FP), INP MOVD len+16(FP), LEN MOVD key+24(FP), KEY - MOVD cnt+32(FP), CNT + MOVD counter+32(FP), CNT MOVD $·consts(SB), CONSTS // point to consts addr diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go index 9bd6df646..638cb5e5d 100644 --- a/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go +++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_ppc64le.go @@ -8,9 +8,10 @@ package chacha20 import "encoding/binary" -var haveAsm = true - -const bufSize = 256 +const ( + bufSize = 256 + haveAsm = true +) //go:noescape func chaCha20_ctr32_vmx(out, inp *byte, len int, key *[8]uint32, counter *uint32) diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index d97415d2d..e55fe0ad6 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -51,6 +51,13 @@ var supportedKexAlgos = []string{ kexAlgoDH14SHA1, kexAlgoDH1SHA1, } +// serverForbiddenKexAlgos contains key exchange algorithms, that are forbidden +// for the server half. +var serverForbiddenKexAlgos = map[string]struct{}{ + kexAlgoDHGEXSHA1: {}, // server half implementation is only minimal to satisfy the automated tests + kexAlgoDHGEXSHA256: {}, // server half implementation is only minimal to satisfy the automated tests +} + // supportedHostKeyAlgos specifies the supported host-key algorithms (i.e. methods // of authenticating servers) in preference order. var supportedHostKeyAlgos = []string{ diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go index f34bcc013..16072004b 100644 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ b/vendor/golang.org/x/crypto/ssh/kex.go @@ -10,7 +10,9 @@ import ( "crypto/elliptic" "crypto/rand" "crypto/subtle" + "encoding/binary" "errors" + "fmt" "io" "math/big" @@ -24,6 +26,12 @@ const ( kexAlgoECDH384 = "ecdh-sha2-nistp384" kexAlgoECDH521 = "ecdh-sha2-nistp521" kexAlgoCurve25519SHA256 = "curve25519-sha256@libssh.org" + + // For the following kex only the client half contains a production + // ready implementation. The server half only consists of a minimal + // implementation to satisfy the automated tests. + kexAlgoDHGEXSHA1 = "diffie-hellman-group-exchange-sha1" + kexAlgoDHGEXSHA256 = "diffie-hellman-group-exchange-sha256" ) // kexResult captures the outcome of a key exchange. @@ -402,6 +410,8 @@ func init() { kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} kexAlgoMap[kexAlgoCurve25519SHA256] = &curve25519sha256{} + kexAlgoMap[kexAlgoDHGEXSHA1] = &dhGEXSHA{hashFunc: crypto.SHA1} + kexAlgoMap[kexAlgoDHGEXSHA256] = &dhGEXSHA{hashFunc: crypto.SHA256} } // curve25519sha256 implements the curve25519-sha256@libssh.org key @@ -538,3 +548,242 @@ func (kex *curve25519sha256) Server(c packetConn, rand io.Reader, magics *handsh Hash: crypto.SHA256, }, nil } + +// dhGEXSHA implements the diffie-hellman-group-exchange-sha1 and +// diffie-hellman-group-exchange-sha256 key agreement protocols, +// as described in RFC 4419 +type dhGEXSHA struct { + g, p *big.Int + hashFunc crypto.Hash +} + +const numMRTests = 64 + +const ( + dhGroupExchangeMinimumBits = 2048 + dhGroupExchangePreferredBits = 2048 + dhGroupExchangeMaximumBits = 8192 +) + +func (gex *dhGEXSHA) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, error) { + if theirPublic.Sign() <= 0 || theirPublic.Cmp(gex.p) >= 0 { + return nil, fmt.Errorf("ssh: DH parameter out of bounds") + } + return new(big.Int).Exp(theirPublic, myPrivate, gex.p), nil +} + +func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) { + // Send GexRequest + kexDHGexRequest := kexDHGexRequestMsg{ + MinBits: dhGroupExchangeMinimumBits, + PreferedBits: dhGroupExchangePreferredBits, + MaxBits: dhGroupExchangeMaximumBits, + } + if err := c.writePacket(Marshal(&kexDHGexRequest)); err != nil { + return nil, err + } + + // Receive GexGroup + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexDHGexGroup kexDHGexGroupMsg + if err = Unmarshal(packet, &kexDHGexGroup); err != nil { + return nil, err + } + + // reject if p's bit length < dhGroupExchangeMinimumBits or > dhGroupExchangeMaximumBits + if kexDHGexGroup.P.BitLen() < dhGroupExchangeMinimumBits || kexDHGexGroup.P.BitLen() > dhGroupExchangeMaximumBits { + return nil, fmt.Errorf("ssh: server-generated gex p is out of range (%d bits)", kexDHGexGroup.P.BitLen()) + } + + gex.p = kexDHGexGroup.P + gex.g = kexDHGexGroup.G + + // Check if p is safe by verifing that p and (p-1)/2 are primes + one := big.NewInt(1) + var pHalf = &big.Int{} + pHalf.Rsh(gex.p, 1) + if !gex.p.ProbablyPrime(numMRTests) || !pHalf.ProbablyPrime(numMRTests) { + return nil, fmt.Errorf("ssh: server provided gex p is not safe") + } + + // Check if g is safe by verifing that g > 1 and g < p - 1 + var pMinusOne = &big.Int{} + pMinusOne.Sub(gex.p, one) + if gex.g.Cmp(one) != 1 && gex.g.Cmp(pMinusOne) != -1 { + return nil, fmt.Errorf("ssh: server provided gex g is not safe") + } + + // Send GexInit + x, err := rand.Int(randSource, pHalf) + if err != nil { + return nil, err + } + X := new(big.Int).Exp(gex.g, x, gex.p) + kexDHGexInit := kexDHGexInitMsg{ + X: X, + } + if err := c.writePacket(Marshal(&kexDHGexInit)); err != nil { + return nil, err + } + + // Receive GexReply + packet, err = c.readPacket() + if err != nil { + return nil, err + } + + var kexDHGexReply kexDHGexReplyMsg + if err = Unmarshal(packet, &kexDHGexReply); err != nil { + return nil, err + } + + kInt, err := gex.diffieHellman(kexDHGexReply.Y, x) + if err != nil { + return nil, err + } + + // Check if k is safe by verifing that k > 1 and k < p - 1 + if kInt.Cmp(one) != 1 && kInt.Cmp(pMinusOne) != -1 { + return nil, fmt.Errorf("ssh: derived k is not safe") + } + + h := gex.hashFunc.New() + magics.write(h) + writeString(h, kexDHGexReply.HostKey) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMinimumBits)) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangePreferredBits)) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMaximumBits)) + writeInt(h, gex.p) + writeInt(h, gex.g) + writeInt(h, X) + writeInt(h, kexDHGexReply.Y) + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: kexDHGexReply.HostKey, + Signature: kexDHGexReply.Signature, + Hash: gex.hashFunc, + }, nil +} + +// Server half implementation of the Diffie Hellman Key Exchange with SHA1 and SHA256. +// +// This is a minimal implementation to satisfy the automated tests. +func (gex *dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) { + // Receive GexRequest + packet, err := c.readPacket() + if err != nil { + return + } + var kexDHGexRequest kexDHGexRequestMsg + if err = Unmarshal(packet, &kexDHGexRequest); err != nil { + return + } + + // smoosh the user's preferred size into our own limits + if kexDHGexRequest.PreferedBits > dhGroupExchangeMaximumBits { + kexDHGexRequest.PreferedBits = dhGroupExchangeMaximumBits + } + if kexDHGexRequest.PreferedBits < dhGroupExchangeMinimumBits { + kexDHGexRequest.PreferedBits = dhGroupExchangeMinimumBits + } + // fix min/max if they're inconsistent. technically, we could just pout + // and hang up, but there's no harm in giving them the benefit of the + // doubt and just picking a bitsize for them. + if kexDHGexRequest.MinBits > kexDHGexRequest.PreferedBits { + kexDHGexRequest.MinBits = kexDHGexRequest.PreferedBits + } + if kexDHGexRequest.MaxBits < kexDHGexRequest.PreferedBits { + kexDHGexRequest.MaxBits = kexDHGexRequest.PreferedBits + } + + // Send GexGroup + // This is the group called diffie-hellman-group14-sha1 in RFC + // 4253 and Oakley Group 14 in RFC 3526. + p, _ := new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16) + gex.p = p + gex.g = big.NewInt(2) + + kexDHGexGroup := kexDHGexGroupMsg{ + P: gex.p, + G: gex.g, + } + if err := c.writePacket(Marshal(&kexDHGexGroup)); err != nil { + return nil, err + } + + // Receive GexInit + packet, err = c.readPacket() + if err != nil { + return + } + var kexDHGexInit kexDHGexInitMsg + if err = Unmarshal(packet, &kexDHGexInit); err != nil { + return + } + + var pHalf = &big.Int{} + pHalf.Rsh(gex.p, 1) + + y, err := rand.Int(randSource, pHalf) + if err != nil { + return + } + + Y := new(big.Int).Exp(gex.g, y, gex.p) + kInt, err := gex.diffieHellman(kexDHGexInit.X, y) + if err != nil { + return nil, err + } + + hostKeyBytes := priv.PublicKey().Marshal() + + h := gex.hashFunc.New() + magics.write(h) + writeString(h, hostKeyBytes) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMinimumBits)) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangePreferredBits)) + binary.Write(h, binary.BigEndian, uint32(dhGroupExchangeMaximumBits)) + writeInt(h, gex.p) + writeInt(h, gex.g) + writeInt(h, kexDHGexInit.X) + writeInt(h, Y) + + K := make([]byte, intLength(kInt)) + marshalInt(K, kInt) + h.Write(K) + + H := h.Sum(nil) + + // H is already a hash, but the hostkey signing will apply its + // own key-specific hash algorithm. + sig, err := signAndMarshal(priv, randSource, H) + if err != nil { + return nil, err + } + + kexDHGexReply := kexDHGexReplyMsg{ + HostKey: hostKeyBytes, + Y: Y, + Signature: sig, + } + packet = Marshal(&kexDHGexReply) + + err = c.writePacket(packet) + + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: gex.hashFunc, + }, err +} diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go index db914d803..ac41a4168 100644 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -97,6 +97,36 @@ type kexDHReplyMsg struct { Signature []byte } +// See RFC 4419, section 5. +const msgKexDHGexGroup = 31 + +type kexDHGexGroupMsg struct { + P *big.Int `sshtype:"31"` + G *big.Int +} + +const msgKexDHGexInit = 32 + +type kexDHGexInitMsg struct { + X *big.Int `sshtype:"32"` +} + +const msgKexDHGexReply = 33 + +type kexDHGexReplyMsg struct { + HostKey []byte `sshtype:"33"` + Y *big.Int + Signature []byte +} + +const msgKexDHGexRequest = 34 + +type kexDHGexRequestMsg struct { + MinBits uint32 `sshtype:"34"` + PreferedBits uint32 + MaxBits uint32 +} + // See RFC 4253, section 10. const msgServiceRequest = 5 diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index ac7f8073c..7a5a1d7ad 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -193,6 +193,12 @@ func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewCha if fullConf.MaxAuthTries == 0 { fullConf.MaxAuthTries = 6 } + // Check if the config contains any unsupported key exchanges + for _, kex := range fullConf.KeyExchanges { + if _, ok := serverForbiddenKexAlgos[kex]; ok { + return nil, nil, nil, fmt.Errorf("ssh: unsupported key exchange %s for server", kex) + } + } s := &connection{ sshConn: sshConn{conn: c}, diff --git a/vendor/golang.org/x/net/bpf/vm_instructions.go b/vendor/golang.org/x/net/bpf/vm_instructions.go index f0d2e55bd..cf8947c33 100644 --- a/vendor/golang.org/x/net/bpf/vm_instructions.go +++ b/vendor/golang.org/x/net/bpf/vm_instructions.go @@ -129,7 +129,8 @@ func loadIndirect(ins LoadIndirect, in []byte, regX uint32) (uint32, bool) { func loadMemShift(ins LoadMemShift, in []byte) (uint32, bool) { offset := int(ins.Off) - if !inBounds(len(in), offset, 0) { + // Size of LoadMemShift is always 1 byte + if !inBounds(len(in), offset, 1) { return 0, false } diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index d4abeb2b9..57334dc79 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -273,7 +273,20 @@ func ConfigureServer(s *http.Server, conf *Server) error { if testHookOnConn != nil { testHookOnConn() } + // The TLSNextProto interface predates contexts, so + // the net/http package passes down its per-connection + // base context via an exported but unadvertised + // method on the Handler. This is for internal + // net/http<=>http2 use only. + var ctx context.Context + type baseContexter interface { + BaseContext() context.Context + } + if bc, ok := h.(baseContexter); ok { + ctx = bc.BaseContext() + } conf.ServeConn(c, &ServeConnOpts{ + Context: ctx, Handler: h, BaseConfig: hs, }) @@ -284,6 +297,10 @@ func ConfigureServer(s *http.Server, conf *Server) error { // ServeConnOpts are options for the Server.ServeConn method. type ServeConnOpts struct { + // Context is the base context to use. + // If nil, context.Background is used. + Context context.Context + // BaseConfig optionally sets the base configuration // for values. If nil, defaults are used. BaseConfig *http.Server @@ -294,6 +311,13 @@ type ServeConnOpts struct { Handler http.Handler } +func (o *ServeConnOpts) context() context.Context { + if o.Context != nil { + return o.Context + } + return context.Background() +} + func (o *ServeConnOpts) baseConfig() *http.Server { if o != nil && o.BaseConfig != nil { return o.BaseConfig @@ -439,7 +463,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { } func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { - ctx, cancel = context.WithCancel(context.Background()) + ctx, cancel = context.WithCancel(opts.context()) ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr()) if hs := opts.baseConfig(); hs != nil { ctx = context.WithValue(ctx, http.ServerContextKey, hs) diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go index 24fbb6967..22eae809c 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_posix.go +++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go @@ -33,7 +33,7 @@ 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": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET)) default: b[0] = sizeofSockaddrInet @@ -46,7 +46,7 @@ func marshalSockaddr(ip net.IP, port int, zone string) []byte { if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { b := make([]byte, sizeofSockaddrInet6) switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6)) default: b[0] = sizeofSockaddrInet6 @@ -68,7 +68,7 @@ func parseInetAddr(b []byte, network string) (net.Addr, error) { } var af int switch runtime.GOOS { - case "android", "linux", "solaris", "windows": + case "android", "illumos", "linux", "solaris", "windows": af = int(NativeEndian.Uint16(b[:2])) default: af = int(b[1]) diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go index 9c96042fe..083bda51c 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go index 356417125..55c6c9f57 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go index 9c96042fe..083bda51c 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go index 356417125..55c6c9f57 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go index 90a57f51f..8b7d161d7 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_dragonfly.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go index e5bc557e3..3e71ff574 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go index cbf85af9a..238d90de6 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go index e5bc557e3..3e71ff574 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go new file mode 100644 index 000000000..238d90de6 --- /dev/null +++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go @@ -0,0 +1,53 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package socket + +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/golang.org/x/net/internal/socket/zsys_linux_386.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go index b7db0f0b3..72d8b2542 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go index b7db0f0b3..72d8b2542 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go index b7db0f0b3..72d8b2542 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go index b7db0f0b3..72d8b2542 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go index 87a4e0b26..3545319ae 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go index cd328440a..bf8f47c88 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go index fa88b6660..a46eff991 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go index cd328440a..bf8f47c88 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go index 64e2ea871..73655a14c 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go index 13554bee5..0a4de80f2 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go index 64e2ea871..73655a14c 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package socket diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go new file mode 100644 index 000000000..0a4de80f2 --- /dev/null +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go @@ -0,0 +1,53 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_openbsd.go + +package socket + +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/golang.org/x/net/internal/socket/zsys_solaris_amd64.go b/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go index a27d73ce7..353cd5fb4 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_solaris.go package socket diff --git a/vendor/golang.org/x/net/ipv4/zsys_darwin.go b/vendor/golang.org/x/net/ipv4/zsys_darwin.go index c07cc883f..e05a251ba 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_darwin.go +++ b/vendor/golang.org/x/net/ipv4/zsys_darwin.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_darwin.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go b/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go index c4365e9e7..6d65e9fcb 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go +++ b/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_dragonfly.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go b/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go index 8c4aec94c..136e2b8f1 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go +++ b/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go b/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go index 4b10b7c57..4f730f19e 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go +++ b/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go b/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go index 4b10b7c57..4f730f19e 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go +++ b/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_freebsd.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_386.go b/vendor/golang.org/x/net/ipv4/zsys_linux_386.go index c0260f0ce..43ef8e592 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_386.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_386.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go b/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go index c0260f0ce..43ef8e592 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go index c0260f0ce..43ef8e592 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go b/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go index c0260f0ce..43ef8e592 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go index f65bd9a7a..fa1b6bc61 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go b/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go index 9c967eaa6..ee8204da4 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go +++ b/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_linux.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_netbsd.go b/vendor/golang.org/x/net/ipv4/zsys_netbsd.go index fd3624d93..8cfc648ad 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_netbsd.go +++ b/vendor/golang.org/x/net/ipv4/zsys_netbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_netbsd.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_openbsd.go b/vendor/golang.org/x/net/ipv4/zsys_openbsd.go index 12f36be75..37629cb0a 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_openbsd.go +++ b/vendor/golang.org/x/net/ipv4/zsys_openbsd.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_openbsd.go package ipv4 diff --git a/vendor/golang.org/x/net/ipv4/zsys_solaris.go b/vendor/golang.org/x/net/ipv4/zsys_solaris.go index 0a3875cc4..cb80a308b 100644 --- a/vendor/golang.org/x/net/ipv4/zsys_solaris.go +++ b/vendor/golang.org/x/net/ipv4/zsys_solaris.go @@ -1,4 +1,4 @@ -// Created by cgo -godefs - DO NOT EDIT +// Code generated by cmd/cgo -godefs; DO NOT EDIT. // cgo -godefs defs_solaris.go package ipv4 diff --git a/vendor/golang.org/x/net/publicsuffix/table.go b/vendor/golang.org/x/net/publicsuffix/table.go index 25674d1ad..c1347ced4 100644 --- a/vendor/golang.org/x/net/publicsuffix/table.go +++ b/vendor/golang.org/x/net/publicsuffix/table.go @@ -2,7 +2,7 @@ package publicsuffix -const version = "publicsuffix.org's public_suffix_list.dat, git revision 0e2a405f597a3c1be456d704b42bdd5e0d4954bb (2019-02-21T09:23:55Z)" +const version = "publicsuffix.org's public_suffix_list.dat, git revision 6f03f42a65d006c8ae657f125f14fb8f9d3337f4 (2019-05-31T16:38:49Z)" const ( nodesBitsChildren = 10 @@ -23,483 +23,486 @@ const ( ) // numTLD is the number of top level domains. -const numTLD = 1541 +const numTLD = 1539 // Text is the combined text of all labels. -const text = "0emmafann-arboretumbriamallamaceiobirabogadodgeiseiyoichippubets" + - "ubetsugarugbydgoszczecinemaceratabuseating-organicbcieszyn4t3l3p" + - "0rtargets-itargivestbytemark120001wwwebredirectmemsettsupportarn" + - "obrzegyptianatuurwetenschappenaumburg120389guacuiababia-goraclea" + - "ningroks-theatreeastcoastaldefenceatonsberggfarmerseinebinagisob" + - "etsumidatlanticaseihicampobassociatest-iservecounterstrikebinord" + - "re-landd-dnshome-webservercelliguriagrocerybnikeisenbahnaval-d-a" + - "osta-valleyokosukanzakiyokawarajudygarlanddnslivelanddnss3-ap-so" + - "uth-16-baltimore-og-romsdalipayboltarumizusawabruzzoologicalvink" + - "lein-addrammenuernbergdyniaetnadexeterepbodynamisches-dns3-ap-no" + - "rtheast-1337bmwedeploybnpparibaselburgleezebnrwegroweibolognagat" + - "orodoybomloabathsbcheltenham-radio-openairbusantiquest-a-la-mais" + - "ondre-landroidrayddnsfreebox-osascoli-picenordlandraydnsupdaterb" + - "ondrivefsnillfjordrobaknoluoktachikawakembuchikumagayagawakkanai" + - "betsubamericanfamilydscloudcontrolapplicationcloudaccesscambridg" + - "estoneat-urlimoliserniabonnishikatsuragit-repos3-website-ap-sout" + - "heast-2bookingliwiceboomladbrokes3-website-eu-west-1boschaeffler" + - "dalvdalaskanittedallasalleaseekloges3-website-sa-east-1bostikarm" + - "oybostonakijinsekikogentinglobalashovhachinohedmarkarpaczeladzlg" + - "loboavistaprintelligencebotanicalgardenishikawazukamitsuebotanic" + - "gardenishimerabotanybouncemerckmsdnipropetrovskjervoyagebounty-f" + - "ullensakerryproperties3-website-us-east-1boutiquebechernigovernm" + - "entjeldsundruduns3-website-us-west-1bozen-sudtirolinkyard-cloudf" + - "unctions3-website-us-west-2bozen-suedtirolivornobplacedekagamino" + - "rd-odalwaysdatabaseballangenoamishirasatobishimaintenancertmgret" + - "agajobojindustriesteamfamberkeleybrandywinevalleybrasiliabrindis" + - "ibenikinderoybristoloseyouriparliamentjmaxxxboxenapponazure-mobi" + - "lebritishcolumbialowiezachpomorskienishinomiyashironobroadcastle" + - "btimnetzparmatta-varjjatjomemorialomzaporizhzhegurinfinitintuitj" + - "xfinitybroadwaybroke-itkmaxxjavald-aostaples5ybrokerbronnoysundu" + - "pontariodejaneirogersakyotanabellunombresciabrothermesaverdealst" + - "ahaugesunderseaportsinfolldalondrinaplesalangenishinoomotegobrow" + - "sersafetymarketsalondonetskaruizawabrumunddalorenskoglogoweirbru" + - "nelasticbeanstalkarumaifarmsteadurbanamexnetlifyinuyamashinatsuk" + - "igatakarazukamakurazakiwakunigamiharuconnectksatxn--0trq7p7nnish" + - "inoshimatsushigebrusselsaltdalotenkawabruxellesaludurhamburglopp" + - "enzaolbia-tempio-olbiatempioolbialystokkepnodumetlifeinsurancebr" + - "yansklepparocherkasyno-dsalvadordalibabalsan-sudtirollagdenesnaa" + - "seralingenkainanaejrietisalatinabenonichernihivgubarclaycards3-e" + - "u-west-2brynewjerseybusinessebykleclerchernivtsiciliabuskerudine" + - "wmexicoalottebuzentsujiiebuzzwfarsundyndns-at-homedepotenzamamid" + - "sundyndns-at-workinggrouparsalzburglugmbhartiffanybwhalingminaka" + - "michiharabzhitomirumalborkdalottokorozawabzzcolognextdirectozsde" + - "ltaiwanairforcechireadthedocscappgafannakadomarinedre-eikercolon" + - "ialwilliamsburgrongacoloradoplateaudiocolumbusheycommunitysvardo" + - "haruovatrani-andria-barletta-trani-andriacomobaracomparemarkerry" + - "hotelsannancompute-1computerhistoryofscience-fictioncomsecurityt" + - "acticsannohelpagesanokashiwaracondoshichinohealth-carereforminam" + - "idaitomandalucerneconferenceconstructionconsuladollsantabarbarac" + - "onsultanthropologyconsultingrossetouchihayaakasakawaharacontactr" + - "aniandriabarlettatraniandriacontagematsubaracontemporaryarteduca" + - "tionalchikugodaddyn-vpndnsantacruzsantafedjejuifminamiechizencon" + - "tractorskenconventureshinodearthdfcbankashiwazakiyosunndalukowii" + - "heyakagecookingchannelsdvrdnsdojoetsuwanouchikujogaszkolahppiace" + - "nzagancooluroycooperativano-frankivskolegallocus-2copenhagencycl" + - "opedichitachinakagawassamukawataricohdatingmodellingmxn--11b4c3d" + - "yndns-freeboxosloftranakasatsunairguardiannefrankfurtmpartinzais" + - "-a-candidatecorsicafederationcorvettemasekasukabedzin-berlindasc" + - "olipicenogataijis-a-chefashioncosenzakopanexus-3cosidnsfor-bette" + - "r-thanawatchesantamariakecostumedicinakamurataitogitsuldalutskas" + - "umigaurawa-mazowszextraspace-to-rentalstomakomaibaracouchpotatof" + - "riesantoandreamhostersanukis-a-conservativegarsheis-a-cpadualsta" + - "ckasuyameiwamarugame-hostrolekaminokawanishiaizubangecounciluxem" + - "bourgroundhandlingroznycouponsaobernardocoursesaogoncartoonartde" + - "cologiacq-acranbrookuwanalyticsaotomeloyalistoragecreditcardyndn" + - "s-wikirkenesapporocreditunioncremonashgabadaddjaguarqhachiojiyah" + - "oooshikamaishimodatecrewildlifedorainfracloudcontrolledogawarabi" + - "komaezakirunordreisa-geekaszubycricketrzyncrimeast-kazakhstanang" + - "ercrotonecrownipasadenaritakurashikis-a-cubicle-slavellinotaires" + - "taurantranoycrsvpassagensardegnarusawacruisesardiniacryptonomich" + - "igangwoncuisinellair-traffic-controlleyculturalcenternopilawawil" + - "liamhilluxurycuneocupcakecuritibaghdadyndns-workisboringrpasseng" + - "er-associationcxn--12c1fe0bradescorporationcyberlevagangaviikano" + - "njis-a-democratransportecymrussiacyonabaruminamifuranocyouthewor" + - "kpccwinbarclays3-eu-west-3ferrarissagamiharaferreroticanonoichin" + - "omiyakefetsundyndns1fguitarsaudafhvalerfidontexistmein-iservebee" + - "rfieldynnsarluzernfigueresinstagingujoinvilleitungsenfilateliafi" + - "legear-audnedalnfilegear-deatnurembergulenfilegear-gbizfilegear-" + - "iefilegear-jpmorganfilegear-sgunmapartmentsauheradynservebbsarps" + - "borgruefilminamimakis-a-doctorayfinalfinancefineartsavannahgafin" + - "landynufcfanfinnoyfirebaseapplinzis-a-financialadvisor-aurdalfir" + - "enzefirestonefirmdalegojomedio-campidano-mediocampidanomediofish" + - "ingokasells-itravelchannelfitjarfitnessettlementravelersinsuranc" + - "efjalerflesberguovdageaidnulvikatowiceflickragerotikakamigaharaf" + - "lightsaves-the-whalessandria-trani-barletta-andriatranibarlettaa" + - "ndriaflirflogintogoldpoint2thisamitsukefloraflorencefloridattowe" + - "bcampinashikiminohostfoldnavyfloripaderbornfloristanohatajiritto" + - "guraflorokunohealthcareersavonarutomobellevuelosangelesjabbottrd" + - "ynv6flowersaxofltrentin-sud-tirolflynnhosting-clusterflynnhubarg" + - "ainstantcloudeitysfjordiscoveryolasiteu-4fndynvpnplus-4for-ourfo" + - "r-somedizinhistorischeschoenbrunnfor-theaterforexrothachirogatak" + - "amatsukawaforgotdnschokokekschokoladenforli-cesena-forlicesenafo" + - "rlikescandynaliashorokanaieforsaleikangerforsandasuololfortalfor" + - "tmissoulajollamericanexpressexyfortworthadanorthwesternmutualfor" + - "umzfosnescholarshipschoolfotarivnefoxfordebianfozorafredrikstadt" + - "vschulefreeddnsgeekgalaxyfreedesktoperauniteroizumizakiryuohkura" + - "freemasonryfreesitevadsoccertificationfreetlschwarzgwangjuniperf" + - "reiburgushikamifuranorth-kazakhstanfreightrentin-sudtirolfreseni" + - "uscountryestateofdelawarezzoologyfribourgwiddleksvikatsushikabee" + - "ldengeluidyroyrvikinguidegreefriuli-v-giuliafriuli-ve-giuliafriu" + - "li-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-vgiul" + - "iafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-giuli" + - "afriuliveneziagiuliafriulivgiuliafrlfroganschweizfrognfrolandfro" + - "m-akrehamnfrom-alfrom-arfrom-azfrom-capebretonamicrosoftbankatsu" + - "yamarumorimachidafrom-codyn-o-saurlandesciencecentersciencehisto" + - "ryfrom-ctrentin-sued-tirolfrom-dchitosetogakushimotoganewyorkshi" + - "recifedexhibitionishiokoppegardyndns-homednsampalacefrom-dedyn-b" + - "erlincolnfrom-flanderscientistordalfrom-gausdalfrom-hichisochild" + - "rensgardenfrom-iafrom-idfrom-ilfrom-in-brbarreauctionflfanfshost" + - "rowiecasertaipeigersundishakotanhktattooddaustrheimatunduhrennes" + - "oyokotebizenakatombetsumitakagiizehimejibigawaurskog-holandingje" + - "mnes3-ap-southeast-2ix4432-bambleborkangereportashkentatamotors3" + - "-ap-northeast-2from-kscjohnsonfrom-kyowariasahikawafrom-lancashi" + - "recreationfrom-mamurogawafrom-mdfrom-meeresistancefrom-mifunefro" + - "m-mnfrom-modalenfrom-mscotlandfrom-mtnfrom-nchocolatelemarkasaok" + - "amiminersamsclubartowhoswhokksundyndns-ipartsamsungrimstadyndns-" + - "mailouvrehabmerfrom-ndfrom-nefrom-nh-serveblogsiteleafamilycompa" + - "nyminamiminowafrom-njaworznotogawafrom-nminamiogunicomcastresind" + - "evicescrapper-sitefrom-nv-infoodnetworkshoppingxn--12co0c3b4eval" + - "leaostaticscrappingfrom-nyfrom-ohtawaramotoineppuboliviajessheim" + - "periafrom-oketohmangolffanscrysechofunatoriginstitutelevisionish" + - "itosashimizunaminamibosogndalowiczest-le-patronishiwakis-a-cater" + - "erfrom-orfrom-padovaksdalfrom-pratohnoshooguyfrom-ris-a-geekaufe" + - "nfrom-schmidtre-gauldalfrom-sdfrom-tnfrom-txn--1ck2e1barrel-of-k" + - "nowledgeologyombolzano-altoadigeverbankarasjohkamikoaniikappuebl" + - "ockbustermezgorzeleccoffeedbackplaneapplefrakkestadisrechtrainin" + - "gjerstadotsuruokakegawauthordalandeportenrightathomeftpalmaserat" + - "ibmdevelopmentateshinanomachimkentateyamaustevoll-o-g-i-navigati" + - "onavoi234lima-cityeatselinogradultatarantoyakokonoe12hpalermomah" + - "achijolstereviewskrakowebspace164-bananarepublic66from-utazueric" + - "hardlillehammerfeste-ipatriafrom-val-daostavalleyfrom-vtrentin-s" + - "uedtirolfrom-wafrom-wielunnerfrom-wvalled-aostavangerfrom-wyfros" + - "inonefrostalowa-wolawafroyahikobeardubaiduckdnserveminecraftrent" + - "ino-a-adigefstcgroupaviancarrierfujiiderafujikawaguchikonefujimi" + - "nokamoenairlinemurorangemologicallcube-serversaillest-mon-blogue" + - "urovisionthewifiat-band-campaniafujinomiyadavvenjargaulardalfuji" + - "okayamangyshlakasamatsudoomdnsiskinkyotobetsulikes-piedmonticell" + - "odingenfujisatoshonairportland-4-salernoboribetsuckservemp3fujis" + - "awafujishiroishidakabiratoridefensells-for-lesservep2pfizerfujit" + - "surugashimaniwakuratexasiafujixeroxn--1ctwolominamatakkokaminoya" + - "maxunusualpersonfujiyoshidavvesiidattorelayfukayabeatservepicser" + - "vequakefukuchiyamadazaifudaigodonnakaniikawatanagurafukudominich" + - "onanbuildingripefukuis-a-greenfukumitsubishigakisarazurecontaine" + - "rdpolicefukuokazakishiwadafukuroishikarikaturindalfukusakisofuku" + - "shimannore-og-uvdalfukuyamagatakaharunzenfunabashiriuchinadafuna" + - "gatakahashimamakisosakitagawafunahashikamiamakusatsumasendaisenn" + - "angonohejis-a-guruslivinghistoryfundaciofuoiskujukuriyamansionse" + - "rvesarcasmatartanddesignfuosskoczowindmillfurnituredumbrellancas" + - "terfurubirafurudonostiaafurukawairtelebitballooningfusodegaurafu" + - "ssaikitahatakahatakaishimogosenfutabayamaguchinomigawafutboldlyg" + - "oingnowhere-for-morenakatsugawafuttsurugiminamisanrikubetsurfast" + - "ly-terrariuminamiiselectransurlvivanovodkamisatokamachintaifun-d" + - "nsaliaskvollfuturecmservicesevastopolefuturehostingfuturemailing" + - "fvgfylkesbiblackbaudcdn77-securebungoonord-frontierfyresdalhands" + - "onhangglidinghangoutsystemscloudnsewindowsharis-a-knightpointtok" + - "aizukameokameyamatotakadahannanmokuizumodenakayamarburghannosega" + - "wahanyuzenhapmirhareidsbergenharstadharvestcelebrationhasamarche" + - "apigeelvinckazohasaminami-alpsharpharmacienshawaiijimarnardalhas" + - "hbanghasudahasura-appharmacyshellaspeziahasvikazunowruzhgorodeoh" + - "atogayaitakamoriokalmykiahatoyamazakitakatakanabeautysneshimojis" + - "-a-landscaperhatsukaichikaiseis-a-lawyerhattfjelldalhayashimamot" + - "obulsan-suedtirolhazuminobusellsyourhomegoodshimokawahelsinkitak" + - "yushuaiahembygdsforbundhemneshimokitayamahemsedalhepforgeherokus" + - "sldheroyhgtvalledaostavernhigashiagatsumagoianiahigashichichibun" + - "gotakadancehigashihiroshimanehigashiizumozakitamihamadahigashika" + - "gawahigashikagurasoedahigashikawakitaaikitamotosumy-gatewayhigas" + - "hikurumeethnologyhigashimatsushimaritimodernhigashimatsuyamakita" + - "akitadaitoigawahigashimurayamamotorcycleshimonitayanagithubuserc" + - "ontentrentino-aadigehigashinarusembokukitanakagusukumoduminamita" + - "nehigashinehigashiomihachimanaustdalhigashiosakasayamanakakogawa" + - "higashishirakawamatakanezawahigashisumiyoshikawaminamiaikitashio" + - "barahigashitsunoshiroomurahigashiurausukitaurayasudahigashiyamat" + - "okoriyamanashifteditchyouriphdhigashiyodogawahigashiyoshinogaris" + - "-a-liberalhiraizumisatohobby-sitehirakatashinagawahiranairtraffi" + - "cplexus-1hirarahiratsukagawahirayaizuwakamatsubushikusakadogawah" + - "istorichouseshimonosekikawahitachiomiyagildeskaliszhitachiotagoo" + - "glecodespotaruis-a-libertarianhitraeumtgeradelmenhorstalbanshimo" + - "suwalkis-a-linux-useranishiaritabashijonawatehjartdalhjelmelandh" + - "oleckobierzyceholidayhomeiphiladelphiaareadmyblogspotrentino-alt" + - "o-adigehomelinkitoolsztynsettlershimotsukehomelinuxn--1lqs03nhom" + - "eofficehomesecuritymacaparecidahomesecuritypchoseiroumuencheniss" + - "andiegohomesenseminehomeunixn--1lqs71dhondahoneywellbeingzonehon" + - "gopocznorfolkebibleirfjordhonjyoitakaokaluganskypehornindalhorse" + - "oullensvanguardhorteneis-a-llamarriottrentino-altoadigehospitalh" + - "oteleshimotsumahotmailhoyangerhoylandetroitskddielddanuorrikuzen" + - "takatajimidoriopretogliattireshinichinanhumanitieshinjournalisma" + - "ilillesandefjordhurdalhurumajis-a-musicianhyllestadhyogoris-a-na" + - "scarfanhyugawarahyundaiwafuneis-very-niceis-very-sweetpepperis-w" + - "ith-thebandownloadisleofmanchesterjewelryjewishartgalleryjfkhark" + - "ivallee-aosteroyjgorajlljmphoenixn--1qqw23ajnjcphilipsynology-di" + - "skstationjoyentrentino-sudtiroljoyokaichibalatinogiftshintomikas" + - "aharajpnjprshinyoshitomiokamogawajurkoshunantankhersonkosugekoto" + - "hiradomainsureggiocalabriakotourakouhokutamakis-a-republicancerr" + - "esearchaeologicaliforniakounosupplieshirahamatonbetsurnadalkouya" + - "mashikekouzushimashikis-a-rockstarachowicekozagawakozakis-a-soci" + - "alistdlibestadkozowinnershirakoelnkpnkppspdnshiranukanagawakrasn" + - "ikahokutokigawakrasnodarkredstonekristiansandcatshiraois-a-soxfa" + - "nkristiansundkrodsheradkrokstadelvaldaostarnbergkryminamiuonumas" + - "sa-carrara-massacarraramassabunkyonanaoshimageandsoundandvisionk" + - "umatorinokumejimasoykumenantokonamegatakasugais-a-studentalkunis" + - "akis-a-teacherkassymantechnologykunitachiarailwaykunitomigusukum" + - "amotoyamashikokuchuokunneppugliakunstsammlungkunstunddesignkuokg" + - "rouphotographysiokureggioemiliaromagnamsskoganeis-a-techietis-a-" + - "nurservegame-serverkurgankurobelaudiblebesbyglandroverhalla-spez" + - "iakurogiminamiashigarakuroisoftwarendalenugkuromatsunais-a-thera" + - "pistoiakurotakikawasakis-an-accountantshinjukumanokushirogawakus" + - "tanais-an-actorkusupplykutchanelkutnokuzumakis-an-actresshinkami" + - "gotoyohashimotottoris-a-painteractivegaskimitsubatamibudejjuedis" + - "chesapeakebayernrtrentino-s-tirolkvafjordkvalsundkvamlidlugoleka" + - "fjordkvanangenkvinesdalkvinnheradkviteseidskogkvitsoykwpspectrum" + - "inamiyamashirokawanabelembetsukubankhmelnitskiyamarylandkzmitour" + - "ismolancomelbournemitoyoakemiuramiyazurewebsiteshikagamiishibuka" + - "wamiyotamanomjondalenmlbfanmonstermontrealestatefarmequipmentren" + - "tino-suedtirolmonza-brianzaporizhzhiamonza-e-della-brianzapposhi" + - "ratakahagitlabormonzabrianzaptokyotangotsukitahiroshimaoris-an-e" + - "ntertainermonzaebrianzaramonzaedellabrianzamoonscalevangermopara" + - "chutingmordoviamoriyamatsumotofukemoriyoshiminamiawajikis-bytoma" + - "ritimekeepingmormonmouthaebaruericssonyoursidell-ogliastradermor" + - "oyamatsunomortgagemoscowioshishikuis-certifieducatorahimeshimama" + - "teramobilymoseushistorymosjoenmoskeneshisognemosshisuifuelverumi" + - "nanomosviklabudhabikinokawabarthadselfipgfoggiamoteginowaniihama" + - "tamakawajimanxn--2scrj9christiansburgroks-thisayamanobeokakudama" + - "tsuemoviemovimientolgamovistargardmozilla-iotrentinoa-adigemtran" + - "bymuenstermuginozawaonsenmuikamisunagawamukodairamulhouservehalf" + - "lifestylewismillermunakatanemuncienciamuosattemupictetrentinoaad" + - "igemurmanskmpspbarrell-of-knowledgeometre-experts-comptables3-ex" + - "ternal-1murotorcraftrentinoalto-adigemusashimurayamatsusakahogin" + - "ankokubunjis-foundationmusashinoharamuseetrentinoaltoadigemuseum" + - "verenigingmusicargoboatshitaramamutsuzawamy-vigorgemy-wanggouvic" + - "enzamyactivedirectorymyasustor-elvdalmycdn77-sslattumincommbankh" + - "melnytskyivalleeaosteinkjerusalembroiderymydattolocalhistorymydd" + - "nskingmydissentrentinos-tirolmydobisshikis-gonemydroboehringerik" + - "emydshizukuishimofusaitamatsukuris-into-animeguroroshinshinotsur" + - "gerymyeffectrentinostirolmyfirewallonieruchomoscienceandindustry" + - "nmyfritzmyftpaccesshizuokanazawamyhome-servermyjinomykolaivanylv" + - "enicemymailermymediapchristmasakindlecznakaiwamizawatchandclocka" + - "shibatakasakiyosatokashikiyosemitemyokohamamatsudamypepicturesho" + - "ujis-into-carshinshiromypetshowamyphotoshibalestrandabergamoarek" + - "emypiagetmyiphostre-totendofinternet-dnshowtimemergencyahabahcav" + - "uotnagareyamaizuruhrmypsxn--30rr7ymysecuritycamerakermyshopblock" + - "shriramsterdamnserverbaniamytis-a-bookkeeperugiamytuleapiemontem" + - "yvnchromedicaltanissettairavennakamagayachtsandoymywireisenpiszp" + - "ittsburghofficialpiwatepixolinopizzapkolobrzegersundplanetariumi" + - "niserversicherungplantationplantsigdalplatformshangrilangevagrig" + - "entomologyeonggiehtavuoatnagaivuotnagaokakyotambabyendoftheinter" + - "netflixilovecollegefantasyleaguernseyplaystationplazaplchryslerp" + - "lumbingoplurinacionalpodhalezajskomaganepodlasiellaktyubinskiptv" + - "eterinairealmpmnpodzonepohlpoivronpokerpokrovskomakizunokunimima" + - "takashimarylhurstjordalshalsenpoliticartierpolitiendapolkowicepo" + - "ltavalle-aostarostwodzislawitdkomatsushimasfjordenpomorzeszowith" + - "googleapisa-hockeynutsiracusakataketomisatotalponpesaro-urbino-p" + - "esarourbinopesaromasvuotnaroypordenonepornporsangerporsangugepor" + - "sgrunnanyokoshibahikariwanumatakazakis-into-cartoonshintokushima" + - "poznanpraxis-a-bruinsfanprdpreservationpresidioprgmrprimelhusdec" + - "orativeartsilkomforbarsycentertainmentaxihuanhlfanhs3-fips-us-go" + - "v-west-1principeprivatizehealthinsuranceprochowiceproductionsimp" + - "le-urlprofesionalprogressivenneslaskerrylogisticsirdalpromombets" + - "urgeonshalloffameldalpropertyprotectionprotonetrentinosud-tirolp" + - "rudentialpruszkowithyoutuberspacekitagatakinoueprzeworskogptplus" + - "gardenpupilotsienarviikamitondabayashiogamagoriziapvhagakhanamig" + - "awapvtrentinosudtirolpwchungnamdalseidfjordyndns-remotewdyndns-s" + - "erverdalplfinancialpusercontentoyosatoyonakagyokutoyokawapzqldqp" + - "oniatowadaqslingquicksytestingquipelementsjcbnlqvchurcharternidy" + - "ndns-webhopencraftoyotapartystudynathomebuiltrentinsud-tirolstuf" + - "f-4-salestufftoread-booksnesokndalstuttgartrentinsudtirolsusakis" + - "-into-gamessinazawasusonosuzakaniepcesuzukanmakiwiensuzukis-leet" + - "nedalsvalbardunloppacificircleverappspotagersveiosvelvikomvuxn--" + - "2m4a15esvizzerasvn-reposolarssonswedenswidnicasacamdvrcampinagra" + - "ndebugattipsseljeepsongdalenviknaharimalatvuopmicrolightingswidn" + - "ikkofuefukihaboromskogswiebodzin-butterswiftcoverswinoujsciencea" + - "ndhistoryswissmarterthanyousynology-dsolognetrvaporcloudtrysilja" + - "ntulansolutionslupskommunalforbundtunesomatunkongsbergturystykan" + - "oyakumoldeloittemp-dnsomnarvikomonowtvalleedaostetuscanytushuiss" + - "ier-justicetuvalle-daostatic-accessootuxfamilytwmailvaroyvestfol" + - "dvestnesopotrentinosued-tirolvestre-slidrepaircraftingvollombard" + - "ynamic-dnsor-odalvestre-totennishiawakuravestvagoyvevelstadvibo-" + - "valentiavibovalentiavideovillasnesoddenmarkhangelskjakdnepropetr" + - "ovskiervaapsteiermarkongsvingervinnicasadelamonedapliernewspaper" + - "vinnytsiavirginiavirtual-userveexchangevirtualuserveftpinknx-ser" + - "verrankoshigayanagawavirtueeldomein-vigorlicevirtuelvisakegawavi" + - "terboknowsitallvivoldavixn--32vp30hagebostadvlaanderenvladikavka" + - "zimierz-dolnyvladimirvlogoipioneervminternationalfirearmshiraoka" + - "naniimihoboleslawiechoyodobashichikashukujitawaraumalopolskanlan" + - "dyndns-picsandnessjoenissayokkaichiropractichernovtsykkylvenetoe" + - "iheijinvestmentsamegawavolkswagentsor-varangervologdanskoninjamb" + - "ylvolvolkenkundenvolyngdalvossevangenvotevotingvotoyonowmflabsor" + - "foldworldworse-thandawowiwatsukiyonoticiaskoyabearalvahkihokumak" + - "ogenglandwpcomstagingwpdevcloudwritesthisblogsytewroclawloclawek" + - "onskowolayangrouphonefosshiojirishirifujiedawtcmisakis-an-artist" + - "gorywtfastpanelblagrarchaeologyeongbuklugsmileangaviikadenagaham" + - "aroyerwuozuwzmiuwajimaxn--3pxu8konsulatrobeepilepsydneyxn--42c2d" + - "9axn--45br5cylxn--45brj9cistrondheimmobilienissedalubindalublind" + - "esnesandvikcoromantovalle-d-aostathellexn--45q11citadeliveryggee" + - "xn--4gbriminingxn--4it168dxn--4it797konyvelombardiamondshioyanai" + - "zutwentexn--4pvxs4allxn--54b7fta0ccitichirurgiens-dentistes-en-f" + - "rancexn--55qw42gxn--55qx5dxn--5js045dxn--5rtp49civilaviationissh" + - "ingucciprianiigataishinomakinkobayashikaoirmitakeharaxn--5rtq34k" + - "ooris-a-personaltrainerxn--5su34j936bgsgxn--5tzm5gxn--6btw5axn--" + - "6frz82gxn--6orx2rxn--6qq986b3xlxn--7t0a264civilisationiyodogawax" + - "n--80adxhksorocabalsan-suedtirolkuszczytnoipirangap-northeast-3x" + - "n--80ao21axn--80aqecdr1axn--80asehdbashkiriautoscanadaeguambulan" + - "cempresashibetsukuiitatebayashiibajddarchitecturealtorlandgcagli" + - "aribeiraokinawashirosatochigiessensiositelekommunikationayorovno" + - "ceanographiquemrevistanbulsan-sudtirolavagiskeu-1xn--80aswgxn--8" + - "0augustownproviderxn--8ltr62kopervikharkovallee-d-aosteigenxn--8" + - "pvr4uxn--8y0a063axn--90a3academiamicaaarborteaches-yogasawaracin" + - "gxn--90aeroportalabamagasakishimabaraogakibichuoxn--90aishobarak" + - "awagoexn--90azhytomyravendbasilicataniaveroykeniwaizumiotsukumiy" + - "amazonawsadoes-itvedestrandiscountyokozeu-2xn--9dbhblg6dietcimdb" + - "asketballyngenvironmentalconservationikonanporomutashinaiiyamano" + - "uchikuhokuryugasakitcheninohekinannestadivttasvuotnakanotoddenin" + - "omiyakonojorpelandiyomitanoppdalavangenirasakin-the-bandain-vpnc" + - "asinorddalazioxn--9dbq2axn--9et52uxn--9krt00axn--andy-iraxn--aro" + - "port-byandexn--3bst00misasaguris-an-engineeringxn--asky-iraxn--a" + - "urskog-hland-jnbatochiokinoshimakeupowiathletajimabaridagawakuya" + - "bukijobserveronagarahkkeravjuegoshikikonaikawachinaganoharamcoac" + - "hampionshiphoptobamadridvagsoygardenebakkeshibechambagriculturen" + - "nebudapest-a-la-masionionjukudoyamagazinebraskaunjargalsacebetsu" + - "ikidsmynasushiobarackmazerbaijan-mayengerdalaheadjudaicable-mode" + - "mocraciavocatanzaroweddingjerdrumetacentrumeteorappalmspringsake" + - "rhcloudyclusterxn--avery-yuasakuhokkaidovre-eikerxn--b-5gaxn--b4" + - "w605ferdxn--balsan-sdtirol-nsbsorreisahayakawakamiichikawamisato" + - "urslzxn--bck1b9a5dre4civilizationxn--bdddj-mrabdxn--bearalvhki-y" + - "4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5" + - "nachikatsuuraxn--bievt-0qa2xn--bjarky-fyaotsurreyxn--bjddar-ptam" + - "ayufuettertdasnetzxn--blt-elabourxn--bmlo-graingerxn--bod-2nativ" + - "eamericanantiquesortlandxn--bozen-sdtirol-2obanazawaxn--brnny-wu" + - "academy-firewall-gatewayxn--brnnysund-m8accident-investigation-a" + - "ptibleadpagespeedmobilizerochesterimo-i-ranaamesjevuemielno-ipif" + - "onycivilwarmanagementoyotomiyazakis-a-celticsfanxn--brum-voagatr" + - "entoyonezawaxn--btsfjord-9zaxn--bulsan-sdtirol-nsbatsfjordnpanam" + - "atsuzakincheonishiazaindianapolis-a-bloggerxn--c1avgxn--c2br7gxn" + - "--c3s14misawaxn--cck2b3bauhausposts-and-telecommunicationsncfdra" + - "ngedalillyonagoyavoues3-eu-west-1xn--cesena-forl-mcbremangerxn--" + - "cesenaforl-i8axn--cg4bkis-lostrodawaraxn--ciqpnxn--clchc0ea0b2g2" + - "a9gcdxn--comunicaes-v6a2oxn--correios-e-telecomunicaes-ghc29axn-" + - "-czr694bbvacationswatch-and-clockerxn--czrs0trevisohughesolundbe" + - "ckommunexn--czru2dxn--czrw28beneventodayonaguniversityoriikarasj" + - "okarasuyamarshallstatebankaratevje-og-hornnes3-sa-east-1xn--d1ac" + - "j3bentleyoshiokaracoldwarmiastagexn--d1alfaromeoxn--d1atritonxn-" + - "-d5qv7z876claimsanfranciscofreakuneuesuranceoxn--davvenjrga-y4ax" + - "n--djrs72d6uyxn--djty4koryokamikawanehonbetsurutaharaxn--dnna-gr" + - "ajewolterskluwerxn--drbak-wuaxn--dyry-iraxn--e1a4clanbibaidarmen" + - "iaxn--eckvdtc9dxn--efvn9soruminnesotaketakatoris-an-anarchistori" + - "calsocietyxn--efvy88haibarakitakamiizumisanofidelityxn--ehqz56nx" + - "n--elqq16hair-surveillancexn--estv75gxn--eveni-0qa01gaxn--f6qx53" + - "axn--fct429kosaigawaxn--fhbeiarnxn--finny-yuaxn--fiq228c5hsoundc" + - "astronomy-routerxn--fiq64beppublishproxyzjampagefrontappanasonic" + - "ateringebuilderschlesisches3-us-east-2xn--fiqs8southcarolinatalx" + - "n--fiqz9southwestfalenxn--fjord-lraxn--fjq720axn--fl-ziaxn--flor" + - "-jraxn--flw351exn--forl-cesena-fcbsowaxn--forlcesena-c8axn--fpcr" + - "j9c3dxn--frde-grandrapidspeedpartnersnoasaitoshimayfirstockholme" + - "strandxn--frna-woaraisaijosoyrovigotembaixadaxn--frya-hraxn--fzc" + - "2c9e2cldmailucaniaxn--fzys8d69uvgmailxn--g2xx48clickashiharaxn--" + - "gckr3f0fastvps-serverisignxn--gecrj9clinichiryukyuragifuchungbuk" + - "haranzanquanpachigasakievennodesaarlandyndns-blogdnsamnangerxn--" + - "ggaviika-8ya47hakatanortonxn--gildeskl-g0axn--givuotna-8yasakaim" + - "inatoyookannamilanotteroyxn--gjvik-wuaxn--gk3at1exn--gls-elacaix" + - "axn--gmq050is-not-certifiedunetbankfhappousrlxn--gmqw5axn--h-2fa" + - "ilxn--h1aeghakodatexn--h2breg3evenespjelkavikomorotsukamiokamiki" + - "tayamatsuris-a-patsfanxn--h2brj9c8cliniquenoharaxn--h3cuzk1digit" + - "alxn--hbmer-xqaxn--hcesuolo-7ya35beskidyn-ip24xn--hery-iraxn--hg" + - "ebostad-g3axn--hmmrfeasta-s4accident-prevention-webhostingxn--hn" + - "efoss-q1axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hxt814exn--" + - "hyanger-q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513nxn--indery-" + - "fyasugivingxn--io0a7is-savedxn--j1aefauskedsmokorsetagayasells-f" + - "or-ulminamiizukamishihoronobeauxartsandcraftsarufutsunomiyawakas" + - "aikaitakoebenhavnxn--j1amhakonexn--j6w193gxn--jlq61u9w7bestbuysh" + - "ouses3-us-gov-west-1xn--jlster-byasuokanraxn--jrpeland-54axn--jv" + - "r189misconfusedxn--k7yn95exn--karmy-yuaxn--kbrq7oxn--kcrx77d1x4a" + - "xn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dxn--kltx9axn--klt" + - "y5xn--3ds443gxn--koluokta-7ya57hakubahccavuotnagasakikuchikuseik" + - "arugamvikautokeinow-dnsevenassisicilyxn--kprw13dxn--kpry57dxn--k" + - "pu716fbsbxn--12cfi8ixb8lxn--kput3is-slickhakassiaxn--krager-gyat" + - "omitamamuraxn--kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--k" + - "rjohka-hwab49jdfastlylbarefootballfinanzgoraustraliaisondriobran" + - "conagawalesundds3-ca-central-1xn--ksnes-uuaxn--kvfjord-nxaxn--kv" + - "itsy-fyatsukanumazuryxn--kvnangen-k0axn--l-1fairwindspreadbettin" + - "gxn--l1accentureklamborghinikolaeventspydebergxn--laheadju-7yats" + - "ushiroxn--langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika-52" + - "betainaboxfusejnynysagaeroclubmedecincinnationwidealerxn--lesund" + - "-huaxn--lgbbat1ad8jelenia-goraxn--lgrd-poacctroandinosaureitrent" + - "insued-tirolxn--lhppi-xqaxn--linds-pramericanartrogstadxn--lns-q" + - "lanxessrtrentinosuedtirolxn--loabt-0qaxn--lrdal-sraxn--lrenskog-" + - "54axn--lt-liaclintonoshoesangoxn--lten-granexn--lury-iraxn--m3ch" + - "0j3axn--mely-iraxn--merker-kuaxn--mgb2ddesrvaoxn--mgb9awbfbx-osa" + - "sayamaxn--mgba3a3ejtromsakakinokiaxn--mgba3a4f16axn--mgba3a4fran" + - "amizuholdingstoregontrailroadxn--mgba7c0bbn0axn--mgbaakc7dvfbxos" + - "asebofagexn--mgbaam7a8hakuis-a-hard-workerxn--mgbab2bdxn--mgbai9" + - "a5eva00bhzcatholicaxiasdaburxn--mgbai9azgqp6jeonnamerikawauexn--" + - "mgbayh7gpaleoxn--mgbb9fbpobihirosakikamijimatsuuraxn--mgbbh1a71e" + - "xn--mgbc0a9azcgxn--mgbca7dzdoxn--mgberp4a5d4a87gxn--mgberp4a5d4a" + - "rxn--mgbgu82axn--mgbi4ecexposedxn--mgbpl2fhskydivingxn--mgbqly7c" + - "0a67fbclothingdustkagoshimalselvendrelluccapitalonewportlligatoy" + - "otsukaidoxn--mgbqly7cvafranziskanerimaringatlantakahamalvikosaka" + - "erodromegallupinbarsyonlinewhollandivtasvuodnakanojohanamakinoha" + - "rautomotiveconomiasakuchinotsuchiurakawalmartatsunoceanographics" + - "3-eu-central-1xn--mgbt3dhdxn--mgbtf8flatangerxn--mgbtx2bieidsvol" + - "limanowarudaxaustinnavuotnarashinobninskaragandaukraanghkeymachi" + - "newhampshirealtychyattorneyagawalbrzycharitydalces3-ap-southeast" + - "-1kappchizip6xn--mgbx4cd0abbvieeexn--mix082fedorapeoplegnicahces" + - "uoloansaskatchewanxn--mix891fedoraprojectrapaniizaxn--mjndalen-6" + - "4axn--mk0axin-dslgbtromsojamisonxn--mk1bu44cn-northwest-1xn--mkr" + - "u45is-uberleetrentino-stirolxn--mlatvuopmi-s4axn--mli-tlapyxn--m" + - "lselv-iuaxn--moreke-juaxn--mori-qsakuragawaxn--mosjen-eyawaraxn-" + - "-mot-tlaquilanciaxn--mre-og-romsdal-qqbielawalterxn--msy-ula0hak" + - "usanagochijiwadellogliastradingxn--mtta-vrjjat-k7aflakstadaokaga" + - "kicks-assedicngrondarxn--muost-0qaxn--mxtq1mishimasudaxn--ngbc5a" + - "zdxn--ngbe9e0axn--ngbrxn--3e0b707exn--nit225koseis-a-photographe" + - "rokuapphilatelyxn--nmesjevuemie-tcbalsfjordxn--nnx388axn--nodess" + - "akurais-very-badajozxn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn" + - "--ntsq17gxn--nttery-byaeservehumourxn--nvuotna-hwaxn--nyqy26axn-" + - "-o1achaseljordxn--o3cw4haldenxn--o3cyx2axn--od0algxn--od0aq3biel" + - "laakesvuemieleccexn--ogbpf8flekkefjordxn--oppegrd-ixaxn--ostery-" + - "fyawatahamaxn--osyro-wuaxn--otu796dxn--p1acfeiraquarelleasingles" + - "assaris-a-designerxn--p1ais-very-evillagexn--pbt977cnpyatigorsko" + - "djeffersonxn--pgbs0dhlxn--porsgu-sta26fermochizukirovogradoyxn--" + - "pssu33lxn--pssy2uxn--q9jyb4cnsanjotoyouraxn--qcka1pmckinseyxn--q" + - "qqt11missilelxn--qxamusementdllxn--rady-iraxn--rdal-poaxn--rde-u" + - "larvikosherbrookegawaxn--rdy-0nabaris-very-goodyearxn--rennesy-v" + - "1axn--rhkkervju-01aferraraxn--rholt-mragowoodsidemoneyxn--rhqv96" + - "gxn--rht27zxn--rht3dxn--rht61exn--risa-5naturalhistorymuseumcent" + - "erxn--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byaxn--rny3" + - "1halsaintlouis-a-anarchistoireggio-calabriaxn--rovu88bieszczadyg" + - "eyachimataikikugawarszawashingtondclkaratsuginamikatagamilitaryu" + - "kindianmarketingjesdalimitedray-dnstracexn--rros-granvindafjordx" + - "n--rskog-uuaxn--rst-0naturalsciencesnaturellestorfjordxn--rsta-f" + - "rancaiseharaxn--rvc1e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1fait" + - "hruherecipescaravantaarpippulawyxn--s9brj9cntoystre-slidrettozaw" + - "axn--sandnessjen-ogbievatmallorcadaques3-us-west-1xn--sandy-yuax" + - "n--sdtirol-n2axn--seral-lraxn--ses554gxn--sgne-gratangenxn--skie" + - "rv-utazassnasabaerobaticketstorjdevcloudfrontdoorxn--skjervy-v1a" + - "xn--skjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat-5naturbruksgymn" + - "xn--slt-elabcgxn--smla-hraxn--smna-gratis-a-bulls-fanxn--snase-n" + - "raxn--sndre-land-0cbifukagawashtenawdev-myqnapcloudappscbgjovika" + - "reliancexn--snes-poaxn--snsa-roaxn--sr-aurdal-l8axn--sr-fron-q1a" + - "xn--sr-odal-q1axn--sr-varanger-ggbihorologyukuhashimoichinosekig" + - "aharaxn--srfold-byaxn--srreisa-q1axn--srum-grazxn--stfold-9xaxn-" + - "-stjrdal-s1axn--stjrdalshalsen-sqbikedaejeonbukariyaltakasagotpa" + - "ntheonsitextileirvikarlsoyurihonjournalistjohnishigovtcp4xn--str" + - "e-toten-zcbilbaogashimadachicago-vipsinaapparaglidingladefinimak" + - "anegasakiraxn--t60b56axn--tckweatherchannelxn--tiq49xqyjetztrent" + - "ino-sud-tirolxn--tjme-hraxn--tn0agrinet-freakstpetersburgxn--tns" + - "berg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tirol-rzbillustra" + - "tionishiharaxn--trentin-sdtirol-7vbioxn--trentino-sd-tirol-c3bir" + - "dartcenterprisesakimobetsuitainaioirasebastopologyeongnamegawaka" + - "yamagentositecnologiaxn--trentino-sdtirol-szbirkenesoddtangenova" + - "raholtalenishiizunazukindigenaklodzkochikushinonsenergyusuharaxn" + - "--trentinosd-tirol-rzbirthplacexn--trentinosdtirol-7vbjarkoyusui" + - "sserveirchattanooganordkapparisor-fronishikatakatsukindustriaxn-" + - "-trentinsd-tirol-6vbjerkreimbarcelonagasukeu-3utilitiesquare7xn-" + - "-trentinsdtirol-nsbjugnieznord-aurdalpha-myqnapcloud66xn--trgsta" + - "d-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvareservehtt" + - "pimientakayamattelefonicarbonia-iglesias-carboniaiglesiascarboni" + - "axn--uc0ay4axn--uist22hammarfeastafricapetownnews-stagingxn--uis" + - "z3gxn--unjrga-rtaobaomoriguchiharagusartstreamuneustarhubssokane" + - "yamazoexn--unup4yxn--uuwu58axn--vads-jraxn--valle-aoste-ebbcn-no" + - "rth-1xn--valle-d-aoste-ehbodoesntexisteingeekoshimizumakis-a-pla" + - "yerxn--valleaoste-e7axn--valledaoste-ebbtrusteexn--vard-jraxn--v" + - "egrshei-c0axn--vermgensberater-ctblackfridayuu2-localhostrowwlkp" + - "mglassassinationalheritagexn--vermgensberatung-pwbloombergbauern" + - "uorockartuzyuzawaxn--vestvgy-ixa6oxn--vg-yiabkhaziaxn--vgan-qoax" + - "n--vgsy-qoa0jevnakershuscultureggio-emilia-romagnamsosnowiechosh" + - "ibuyachiyodatsunanjoburgriwataraidyndns-office-on-the-weberxn--v" + - "gu402coguchikuzenxn--vhquvarggatrentinsuedtirolxn--vler-qoaxn--v" + - "re-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bloxcms3-us-wes" + - "t-2xn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1collection" + - "xn--wgbl6axn--xhq521bluedagestangeorgeorgiaxn--xkc2al3hye2axn--x" + - "kc2dl3a5ee0hamurakamigoris-a-hunterxn--y9a3aquariumisugitokuyama" + - "tsumaebashikshacknetrentino-sued-tirolxn--yer-znaturhistorisches" + - "tudioxn--yfro4i67oxn--ygarden-p1axn--ygbi2ammxn--3hcrj9circustom" + - "erxn--ystre-slidre-ujbmoattachments3-website-ap-northeast-1xn--z" + - "bx025dxn--zf0ao64axn--zf0avxn--3oq18vl8pn36axn--zfr164bms3-websi" + - "te-ap-southeast-1xnbayxz" +const text = "9guacuiababia-goracleaningroks-theatree164-baltimore-og-romsdali" + + "payboltateshinanomachimkentateyamagrocerybnikeisenbahnatuurweten" + + "schappenaumburggfarmerseineastcoastaldefenceatonsbergjemnes3-ap-" + + "southeast-2ix4432-balsfjordd-dnsiskinkyotobetsulikes-piedmontice" + + "llodingenaturhistorisches3-ap-south-16-b-datainaioirasebastopolo" + + "gyeongnamegawakembuchikumagayagawakkanaibetsubamericanfamilydscl" + + "oudeitychyattorneyagawakayamadridvagsoyereplanetariumemsettsuppo" + + "rtashkentatamotors3-ap-northeast-2038bloxcms3-website-us-east-1b" + + "luedancebmoattachments3-website-us-west-1bms3-website-us-west-2b" + + "mwegroweibolognagasakimobetsuitaipeiheijindianmarketinglitchasel" + + "jeepsongdalenviknagatorockartuzyuzawabnpparibaselburgliwicebnrwe" + + "irbomloabathsbcatholicaxiashorokanaiebondray-dnsupdaternopilawat" + + "ches5ybonnishiharabookinghostfoldnavyboomlahppiacenzachpomorskie" + + "nishiizunazukindigenaklodzkochikushinonsenergyboschaefflerdalimi" + + "tedrayddnsfreebox-osascoli-picenordre-landraydnsakyotanabellunor" + + "d-aurdalvdalaskanittedallasalleangaviikaascolipicenoduminamidait" + + "omandalimoldeloittemp-dnsalangenishikatakazakindustriabostikarel" + + "iancebostonakijinsekikogentinglobalashovhachinohedmarkariyamelbo" + + "urnebotanicalgardenishikatsuragit-reposalondonetskarlsoybotanicg" + + "ardenishikawazukamisunagawabotanybouncemerckmsdnipropetrovskjerv" + + "oyagebounty-fullensakerrypropertiesaltdalinkyard-cloudnsaludrive" + + "fsnillfjordrobaknoluoktagajobojindustriesteamfamberkeleyboutique" + + "becheltenham-radio-openairbusantiquest-a-la-maisondre-landroidru" + + "dunsalvadordalibabalestrandabergamo-siemensncfdupontariodejaneir" + + "odoybozen-sudtirolivornobozen-suedtirolombardynaliaskimitsubatam" + + "ibugattiffanynysadoes-itvedestrandurbanamexnetlifyinfinitintuitj" + + "omemorialomzaporizhzhegurinuyamashinatsukigatakasakitchenishimer" + + "abplacedogawarabikomaezakirunorddalondrinamsskoganeinvestmentsal" + + "zburgloboavistaprintelligencebrandywinevalleybrasiliabrindisiben" + + "ikinderoybristoloseyouriparliamentjxfinitybritishcolumbialowieza" + + "ganquanpachigasakievennodesabaerobaticketsamegawabroadcastlecler" + + "chernihivgubananarepublicasadelamonedatingjesdalavangenayorovnoc" + + "eanographics3-fips-us-gov-west-1broadwaybroke-itkmaxxjavald-aost" + + "aplesamnangerbrokerbronnoysundurhamburglogowfarmsteadweberbrothe" + + "rmesaverdealstahaugesunderseaportsinfolldalorenskogloppenzaolbia" + + "-tempio-olbiatempioolbialystokkepnogataijinzais-a-candidatebrows" + + "ersafetymarketsampalacebrumunddalotenkawabrunelasticbeanstalkarm" + + "oybrusselsamsclubartowhalinglugmbhartipscbgminakamichiharabruxel" + + "lesamsungmodalenishinomiyashironobryansklepparmattelefonicarboni" + + "a-iglesias-carboniaiglesiascarboniabrynewjerseybuskerudinewportl" + + "ligatksatxn--0trq7p7nnishinoomotegobuzentsujiiebuzzlgmxn--11b4c3" + + "dynathomebuiltmparochernigovernmentoyosatoyokawabwhoswhokksundyn" + + "dns-at-homedepotenzamamidsundyndns-at-workisboringrimstadyndns-b" + + "logdnsandnessjoenishinoshimatsuurabzhitomirumalatvuopmicrolighti" + + "ngripebzzparsandoycolognexus-2colonialwilliamsburgrongausdalucan" + + "iacoloradoplateaudiocolumbusheycommunecommunitycomoarekecomparem" + + "arkerryhotelsaobernardocompute-1computerhistoryofscience-fiction" + + "comsecuritytacticsaogoncartiercondoshichinohealth-carereforminam" + + "iiselectraniandriabarlettatraniandriaconferenceconstructionconsu" + + "ladonnakamagayahabaghdadyndns-wikirkenesaotomembersapporoconsult" + + "anthropologyconsultingrossetouchihayaakasakawaharacontactranoyco" + + "ntagematsubaracontemporaryarteducationalchikugodaddyn-vpndnsarde" + + "gnaroycontractorskenconventureshinodebalancertificationcookingch" + + "annelsdvrdnsfor-better-thanawatchandclockashiharacooluccapitalon" + + "ewspapercooperativano-frankivskolegallocus-3copenhagencyclopedic" + + "hiryukyuragifuchungbukharaumalborkarpaczeladzwiiheyakumoduminami" + + "echizenishiokoppegardyndns-freeboxosloftranakanojoetsuwanouchiku" + + "jogaszkolajollamericanexpressexycorsicafederationcorvettemasekas" + + "hiwaracosenzakopanecosidnshome-webserverdalucernecostumedio-camp" + + "idano-mediocampidanomediocouchpotatofriesardiniacouncilukowildli" + + "fedorainfraclouderacouponsarluroycq-acranbrookuwanalyticsarpsbor" + + "groundhandlingroznycrdyndns-workshoppingrpasadenarashinocreditca" + + "rdyndns1creditunioncremonashgabadaddjaguarqhachirogatakanezawacr" + + "ewilliamhillutskashiwazakiyosatokamachintaifun-dnsdojolstercrick" + + "etrzyncrimeast-kazakhstanangercrotonecrownipassagensarufutsunomi" + + "yawakasaikaitakoelncrsvpassenger-associationcruisesasayamacrypto" + + "nomichigangwoncuisinellair-traffic-controlleyculturalcentertainm" + + "entransportecuneocupcakecuritibahcavuotnagaivuotnagaokakyotambab" + + "yeniwaizumiotsukumiyamazonawsagaeroclubmedecincinnationwidealeri" + + "mo-i-ranaamesjevuemielno-ipifonychitachinakagawashtenawdev-myqna" + + "pcloudcontrolledekagaminogiftsandvikcoromantovalle-d-aostathelle" + + "cxn--12c1fe0bradescorporationcymrussiacyonabaruminamiizukamiokam" + + "eokameyamatotakadacyoutheworkpccwinbanzaicloudcontrolappleborkda" + + "lpha-myqnapcloud66ferrerotikagoshimalselvendrelluzernfetsundynse" + + "rvebbsaskatchewanfguitarsavannahgafhvalerfidoomdnstracefieldynuc" + + "onnectransurluxembourgruefigueresinstagingujohanamakinoharafilat" + + "eliafilegear-audnedalnfilegear-deatnurembergulenfilegear-gbizfil" + + "egear-iefilegear-jpmorganfilegear-sgunmaoris-a-financialadvisor-" + + "aurdalvivanovoldafilminamiminowafinalfinancefineartsaves-the-wha" + + "lessandria-trani-barletta-andriatranibarlettaandriafinlandynv6fi" + + "nnoyfirebaseapplinzis-a-geekasukabedzin-berlindasdaburfirenzefir" + + "estonefirmdalegokasells-itravelchannelfishingoldpoint2thisamitsu" + + "kefitjarvodkafjordynvpnplus-4fitnessettlementravelersinsurancefj" + + "alerflesberguovdageaidnulminamioguni5flickragerogersavonarusawaf" + + "lightsaxoflirfloginlinefloraflorencefloridattorelayfloripaderbor" + + "nfloristanohatakahamalvikasumigaurawa-mazowszextraspace-to-renta" + + "lstomakomaibaraflorokunohealthcareerschoenbrunnflowerschokokeksc" + + "hokoladenfltrdyroyrvikinguidegreeflynnhosting-clusterflynnhubarc" + + "laycards3-sa-east-1fndfor-ourfor-someeresistancefor-theaterforex" + + "rothadanorthwesternmutualforgotdnscholarshipschoolforli-cesena-f" + + "orlicesenaforlikescandyn53forsaleikangerforsandasuologoipatriafo" + + "rtalfortmissoulancashirecreationfortworthadselfipaviancarrdforum" + + "zfosneschulefotaris-a-greenfoxfordebianfozorafredrikstadtvschwar" + + "zgwangjuniperfreeddnsgeekgalaxyfreedesktopocznore-og-uvdalfreema" + + "sonryfreesitevadsoccertmgretakahashimamakirovogradoyfreetlschwei" + + "zfreiburgushikamifuranorth-kazakhstanfreightrentin-sud-tirolfres" + + "eniuscountryestateofdelawarezzoologyfribourgwiddleitungsenfriuli" + + "-v-giuliafriuli-ve-giuliafriuli-vegiuliafriuli-venezia-giuliafri" + + "uli-veneziagiuliafriuli-vgiuliafriuliv-giuliafriulive-giuliafriu" + + "livegiuliafriulivenezia-giuliafriuliveneziagiuliafriulivgiuliafr" + + "lfrogansciencecentersciencehistoryfrognfrolandfrom-akrehamnfrom-" + + "alfrom-arfrom-azimuthdfcbankasuyanagawafrom-capebretonamicrosoft" + + "bankaszubyfrom-codyn-o-saurlandescientistordalfrom-ctrentin-sudt" + + "irolfrom-dchitosetogitsuldalottefrom-dedyn-berlincolnfrom-flande" + + "rscjohnsonfrom-gaulardalfrom-hichisochildrensgardenfrom-iafrom-i" + + "dfrom-ilfrom-in-brbarclays3-us-east-2from-kscotlandfrom-kyowaria" + + "sahikawawindmillfrom-lancasterfrom-mamurogawafrom-mdfrom-meethno" + + "logyfrom-mifunefrom-mnfrom-mochizukiryuohdattowebcampinashikimin" + + "ohostre-totendofinternet-dnsaliasiafrom-mscrapper-sitefrom-mtnfr" + + "om-nctulanciafrom-ndfrom-nefrom-nh-serveblogsiteleafamilycompany" + + "minamisanrikubetsurfastly-terrariuminamimakis-a-designerfrom-nja" + + "worznoticiasnesoddenmarkhangelskjakdnepropetrovskiervaapsteierma" + + "rkatowicefrom-nminamitanefrom-nvalled-aostavangerfrom-nyfrom-ohk" + + "urafrom-oketogurafrom-orfrom-padovaksdalfrom-pratohmangolffanscr" + + "appingxn--12co0c3b4evalleaostaticscrysechocolatelemarkaruizawafr" + + "om-ris-a-gurulvikatsushikabeeldengeluidfrom-schmidtre-gauldalfro" + + "m-sdfrom-tnfrom-txn--1ck2e1barefootballfinanzgoraustraliaisondri" + + "obranconagawalbrzycharitysfjordds3-eu-west-1from-utazuerichardli" + + "llehammerfeste-ipfizerfrom-val-daostavalleyfrom-vtrentin-sued-ti" + + "rolfrom-wafrom-wielunnerfrom-wvalledaostavernfrom-wyfrosinonefro" + + "stalowa-wolawafroyahooguyfstcgroupgfoggiafujiiderafujikawaguchik" + + "onefujiminokamoenairlinedre-eikerfujinomiyadavvenjargap-northeas" + + "t-3fujiokayamangyshlakasamatsudovre-eikerfujisatoshonairportland" + + "-4-salernoboribetsuckserveminecraftrentin-suedtirolfujisawafujis" + + "hiroishidakabiratoridefensells-for-lesservemp3fujitsurugashimani" + + "wakuratexaskoyabearalvahkihokumakogengerdalcesurancechirealmpmnf" + + "ujixeroxn--1ctwolominamataobaomoriguchiharagusartservep2pharmaci" + + "enservepicservequakefujiyoshidavvesiidatsunanjoburgfukayabeatser" + + "vesarcasmatartanddesignfukuchiyamadazaifudaigodontexistmein-iser" + + "vebeerfukudominichofunatoriginstitutelevisionishitosashimizunami" + + "namibosogndalottokonamegatakatsukis-a-catererfukuis-a-hard-worke" + + "rservicesevastopolefukumitsubishigakisarazurecontainerdpolicefuk" + + "uokazakishiwadafukuroishikarikaturindalfukusakisofukushimannorfo" + + "lkebibleirfjordfukuyamagatakahatakaishimogosenfunabashiriuchinad" + + "afunagatakamatsukawafunahashikamiamakusatsumasendaisennangonohej" + + "is-a-hunterfundaciofuoiskujukuriyamansionsevenassisicilyfuosskoc" + + "zowindowsewinnersharis-a-knightpointtohobby-sitefurnitureggio-ca" + + "labriafurubirafurudonostiaafurukawairtelebitballooningfusodegaur" + + "afussaikisosakitagawafutabayamaguchinomigawafutboldlygoingnowher" + + "e-for-morenakatombetsumitakagiizefuttsurugimperiafuturecmsharpha" + + "rmacyshawaiijimarnardalfuturehostingfuturemailingfvgfylkesbiblac" + + "kbaudcdn77-securebungoonord-odalwaysdatabaseballangenoamishirasa" + + "tochigiessensiositelekommunikationionjukudoyamaintenanceofyresda" + + "lhangglidinghangoutsystemscloudyclusterhannanmokuizumodellinghan" + + "nosegawahanyuzenhapmirhareidsbergenharstadharvestcelebrationhasa" + + "marburghasaminami-alpshimojis-a-liberalhashbanghasudahasura-apph" + + "dhasvikatsuyamarylandhatogayaizuwakamatsubushikusakadogawahatoya" + + "mazakitakamiizumisanofidelityhatsukaichikaiseis-a-libertarianhat" + + "tfjelldalhayashimamotobungotakadapliernewmexicoalhazuminobusells" + + "yourhomegoodshimokawahelsinkitakatakaokalmykiahembygdsforbundhem" + + "neshimokitayamahemsedalhepforgeherokussldheroyhgtvallee-aosteroy" + + "higashiagatsumagoianiahigashichichibunkyonanaoshimageandsoundand" + + "visionhigashihiroshimanehigashiizumozakitakyushuaiahigashikagawa" + + "higashikagurasoedahigashikawakitaaikitamihamadahigashikurumeguro" + + "roshimonitayanagithubusercontentrentino-a-adigehigashimatsushima" + + "rcheapigeelvinckaufenhigashimatsuyamakitaakitadaitoigawahigashim" + + "urayamamotorcycleshimonosekikawahigashinarusembokukitamotosumy-g" + + "atewayhigashinehigashiomihachimanaustdalhigashiosakasayamanakako" + + "gawahigashishirakawamatakarazukaluganskypehigashisumiyoshikawami" + + "namiaikitanakagusukumodenakayamaritimodernhigashitsunoshiroomura" + + "higashiurausukitashiobarahigashiyamatokoriyamanashifteditchyouri" + + "philadelphiaareadmyblogspotrentino-aadigehigashiyodogawahigashiy" + + "oshinogaris-a-linux-useranishiaritabashijonawatehiraizumisatohno" + + "shoooshikamaishimodatehirakatashinagawahiranairtrafficplexus-1hi" + + "rarahiratsukagawahirayakagehistorichouseshimosuwalkis-a-llamarri" + + "ottrentino-alto-adigehitachiomiyagildeskaliszhitachiotagooglecod" + + "espotaruis-a-musicianhitraeumtgeradelmenhorstalbanshimotsukehjar" + + "tdalhjelmelandholeckobierzyceholidayhomeiphilatelyhomelinkitools" + + "ztynsettlershimotsumahomelinuxn--1lqs03nhomeofficehomesecurityma" + + "caparecidahomesecuritypchonanbulsan-suedtirolouvreisenishiwakis-" + + "a-celticsfanissandiegohomesenseminehomeunixn--1lqs71dhondahoneyw" + + "ellbeingzonehongoppdalhonjyoitakasagotembaixadahornindalhorseoul" + + "lensvanguardhorteneis-a-nascarfanhospitalhoteleshinichinanhotmai" + + "lhoyangerhoylandetroitskautokeinotteroyhumanitieshinjournalismai" + + "lillesandefjordhurdalhurumajis-a-nurservegame-serverhyllestadhyo" + + "goris-a-painteractivegaskvollhyugawarahyundaiwafuneis-very-sweet" + + "pepperis-with-thebandoisleofmanchesterjewelryjewishartgalleryjfk" + + "fhappounzenjgorajlljmphonefosshioyanaizuslivinghistoryjnjcphoeni" + + "xn--1qqw23ajoyentrentino-stiroljoyokaichibalatinoipirangamvikhak" + + "assiajpnjprshirahamatonbetsurnadaljurkoseis-a-photographerokuapp" + + "hilipsyno-dshinjukumanowtvallee-d-aosteigenkosherbrookegawakoshi" + + "mizumakiyosunndalkoshunantankharkovalleedaostekosugekotohiradoma" + + "insureggioemiliaromagnamsosnowiechoseiroumuenchenissayokkaichiro" + + "practichernivtsiciliakotourakouhokutamakizunokunimimatakatoris-a" + + "-playerkounosupplieshiranukamitsuekouyamashikekouzushimashikis-a" + + "-republicancerresearchaeologicaliforniakozagawakozakis-a-rocksta" + + "rachowicekozowioshiraois-a-socialistdlibestadkpnkppspdnshiraokam" + + "ogawakrasnikahokutokashikis-a-soxfankrasnodarkredstonekristiansa" + + "ndcatshiratakahagitlaborkristiansundkrodsheradkrokstadelvaldaost" + + "arnbergkryminamiuonumassa-carrara-massacarraramassabusinessebykl" + + "ecznagasukekumatorinokumejimasoykumenantokigawakunisakis-a-stude" + + "ntalkunitachiarailwaykunitomigusukumamotoyamashikokuchuokunneppu" + + "eblockbustermezkunstsammlungkunstunddesignkuokgroupictetrentino-" + + "sud-tirolkurehabmerkurgankurobelaudibleasingleshishikuis-a-teach" + + "erkassyncloudkurogiminamiashigarakuroisoftwarendalenugkuromatsun" + + "ais-a-techietis-a-patsfankurotakikawasakis-a-therapistoiakushiro" + + "gawakustanais-an-accountantshinkamigotoyohashimototalkusupplykut" + + "chanelkutnokuzumakis-an-actorkvafjordkvalsundkvamlidlugolekadena" + + "gahamaroygardenebakkeshibechambagriculturennebudejjuedischesapea" + + "kebayernuorochesterkvanangenkvinesdalkvinnheradkviteseidskogkvit" + + "soykwpspectruminamiyamashirokawanabelembetsukubankhersonkzmisugi" + + "tokorozawamitourismolangevagrigentomologyeonggiehtavuoatnadexete" + + "rmitoyoakemiuramiyazurewebsiteshikagamiishibukawamiyotamanomjond" + + "alenmlbfanmombetsurgeonshalloffamelhusdecorativeartshisuifuelver" + + "uminanomonstermontrealestatefarmequipmentrentino-sued-tirolmonza" + + "-brianzapposhitaramamonza-e-della-brianzaptokuyamatsumotofukemon" + + "zabrianzaramonzaebrianzamonzaedellabrianzamoonscalevangermoparac" + + "hutingmordoviamoriyamatsunomoriyoshiminamiawajikis-an-artistgory" + + "mormonmouthagakhanamigawamoroyamatsusakahoginankokubunjis-an-eng" + + "ineeringmortgagemoscowitdkhmelnitskiyamarylhurstjordalshalsenmos" + + "eushistorymosjoenmoskeneshizukuishimofusaitamatsukuris-an-entert" + + "ainermosshizuokanagawamosvikhmelnytskyivanylvenicemoteginowaniih" + + "amatamakawajimanxn--2scrj9choshibuyachtsanfranciscofreakunemuror" + + "angeiseiyoichippubetsubetsugarugbydgoszczecinemagentositecnologi" + + "amoviemovimientokyotangotsukitahatakamoriokakegawamovistargardmo" + + "zilla-iotrentino-suedtirolmtranbymuenstermuginozawaonsenmuikamis" + + "atokaizukamikitayamatsuris-bytomaritimekeepingmukodairamulhouser" + + "vehalflifestylewismillermunakatanemuncienciamuosattemupicturesho" + + "ujis-certifieducatorahimeshimamateramobaramurmanskhplaystationmu" + + "rotorcraftrentinoa-adigemusashimurayamatsushigemusashinoharamuse" + + "etrentinoaadigemuseumverenigingmusicargoboatshowamutsuzawamy-vig" + + "orgemy-wanggouvichoyodobashichikashukujitawaravennaharimalopolsk" + + "anlandyndns-homednsangomyactivedirectorymyasustor-elvdalmycdn77-" + + "sslattumincomcastresindevicenzaporizhzhiamydattolocalhistorymydd" + + "nskingmydissentrentinoalto-adigemydobisshikis-foundationmydroboe" + + "hringerikemydshowtimemergencyahikobeardubaiduckdnshriramsterdamn" + + "serverbaniamyeffectrentinoaltoadigemyfirewallonieruchomosciencea" + + "ndindustrynmyfritzmyftpaccessienarutolgamyhome-servermyjinomykol" + + "aivaomymailermymediapchristiansburgriwataraidyndns-ipartis-a-che" + + "farsundyndns-mailowiczest-le-patronissedalplfinancialpuserconten" + + "toyotapartsanjotoyotomiyazakis-a-conservativegarsheis-a-cpaduals" + + "tackhero-networkinggroupartymyokohamamatsudamypepiemontemypetsig" + + "dalmyphotoshibalena-devicesilklabudhabikinokawabarthaebaruericss" + + "onyoursidell-ogliastradermypiagetmyiphostrodawaramypsxn--30rr7ym" + + "ysecuritycamerakermyshopblocksimple-urlmytis-a-bookkeeperugiamyt" + + "uleapilotsirdalmyvnchristmasakindlefrakkestadyndns-office-on-the" + + "-webhopencraftoyotsukaidomywireitrentinos-tirolpiszpittsburghoff" + + "icialpiwatepixolinopizzapknx-serversailleshirakofuefukihaboromsk" + + "ogplantationplantsjcbnlplatformshangrilanslupskolobrzegersundpla" + + "zaplcube-serversicherungplumbingoplurinacionalpodhalezajskomagan" + + "epodlasiellaktyubinskiptveterinaireadthedocscappgafannefrankfurt" + + "rentinosud-tirolpodzonepohlpoivronpokerpokrovskomakiyosemitepoli" + + "ticarrierpolitiendapolkowicepoltavalle-aostarostwodzislawithgoog" + + "leapisa-hockeynutsiracusakatakkoebenhavnpomorzeszowithyoutubersp" + + "acekitagatamayufuettertdasnetzponpesaro-urbino-pesarourbinopesar" + + "omasvuotnaritakurashikis-goneponypordenonepornporsangerporsangug" + + "eporsgrunnanyokoshibahikariwanumatakinouepoznanpraxis-a-bruinsfa" + + "nprdpreservationpresidioprgmrprimeloyalistorageprincipeprivatize" + + "healthinsuranceprochowiceproductionslzprofesionalprogressivennes" + + "laskerrylogisticsnoasaitoshimayfirstockholmestrandpromomahachijo" + + "invilleksvikomatsushimasfjordenpropertyprotectionprotonetrentino" + + "sudtirolprudentialpruszkowiwatsukiyonotairestaurantrentinosued-t" + + "irolprvcyberlevagangaviikanonjis-into-animeiwamarshallstatebanka" + + "zoprzeworskogptplusgardenpupimientaketomisatomobellevuelosangele" + + "sjabbottrentinostirolpvhagebostadpvtrentinosuedtirolpwchromedici" + + "nakaiwamizawassamukawataricoharuovatoyourapzqldqponiatowadaqslin" + + "gquicksytestingquipelementsokananiimihoboleslawiechryslerqvchung" + + "namdalseidfjordyndns-picsannanisshingucciprianiigataishinomakink" + + "obayashikaoirmitakeharasuzakanazawasuzukaneyamazoesuzukis-into-g" + + "amessinazawasvalbardunloppacificircleverappsseljordyndns-webhost" + + "ingroks-thisayamanobeokakudamatsuesveiosvelvikomonowruzhgorodeos" + + "vizzerasvn-reposomnarviikamishihoronobeauxartsandcraftsolarssons" + + "wedenswidnicartoonartdecologiaswidnikkokaminokawanishiaizubanges" + + "wiebodzin-butterswiftcoverswinoujscienceandhistoryswissmartertha" + + "nyousrcfastpanelblagrarchaeologyeongbuk0emmafann-arboretumbriama" + + "llamaceiobbcg120001wwwebspace12hpalermoliserniabogadodgehirnrt3l" + + "3p0rtarnobrzegyptian4tarumizusawabruzzoologicalvinklein-addramme" + + "nuernbergdyniaetnabudapest-a-la-masion-webredirectmedicaltanisse" + + "ttachikawafflecellclaims3-ap-northeast-1337synology-diskstations" + + "ynology-dsootunesor-varangertunkomorotsukaminoyamaxunjargaturyst" + + "ykanmakiwientuscanytushuissier-justicetuvalle-daostatic-accessor" + + "foldtuxfamilytwmailvestfoldvestnesorocabalsan-sudtirollagdenesna" + + "aseralingenkainanaejrietisalatinabenonichurcharternidyndns-remot" + + "ewdyndns-serverisigniyodogawavestre-slidrepbodynamic-dnsorreisah" + + "ayakawakamiichikawamisatottoris-into-carshinshirovestre-totennis" + + "hiawakuravestvagoyvevelstadvibo-valentiavibovalentiavideovillaso" + + "rtlandvinnicasacamdvrcampinagrandebuilderschlesischesoruminiserv" + + "ervinnytsiavirginiavirtual-userveexchangevirtualservervirtualuse" + + "rveftpioneervirtueeldomein-vigorlicevirtuelvisakegawaviterboknow" + + "sitallvivolkenkundenvixn--32vp30haibarakitahiroshimapartmentshel" + + "laspeziavlaanderenvladikavkazimierz-dolnyvladimirvlogintoyonezaw" + + "avminnesotaketakayamasudavologdanskomvuxn--2m4a15evolvolkswagent" + + "soundcastronomy-routervolyngdalvoorloperauniterois-leetnedalvoss" + + "evangenvotevotingvotoyonownextdirectrentoyonakagyokutoyakokonoew" + + "orldworse-thandawowloclawekongsbergwpcomstagingwpdevcloudwritest" + + "hisblogsytewroclawmflabsouthcarolinarvikommunalforbundwtcmintern" + + "ationalfirearmshisognewtfastvps-serveronakasatsunairguardiannaka" + + "domarinebraskauniversitydalaheadjudaicable-modemocraciawuozustka" + + "nnamilanotogawawzmiuwajimaxn--3pxu8kongsvingerxn--42c2d9axn--45b" + + "r5cylxn--45brj9cistrondheimmobilienxn--45q11citadeliveryggeexn--" + + "4gbriminingxn--4it168dxn--4it797koninjambylxn--4pvxs4allxn--54b7" + + "fta0ccitichernovtsymantechnologyxn--55qw42gxn--55qx5dxn--5js045d" + + "xn--5rtp49civilaviationxn--5rtq34konskowolayangrouphotographysio" + + "xn--5su34j936bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6q" + + "q986b3xlxn--7t0a264civilisationxn--80adxhksouthwestfalenxn--80ao" + + "21axn--80aqecdr1axn--80asehdbarrell-of-knowledgeologyonagoyautom" + + "otiveconomiasakuchinotsuchiurakawalesundevelopmentattoobninskara" + + "coldwarmiastagebizenakanotoddenavuotnaples3-eu-west-2xn--80aswgx" + + "n--80augustownproviderxn--8ltr62konsulatrobeepilepsykkylvenetoei" + + "dsvollxn--8pvr4utwentexn--8y0a063axn--90a3academiamicaaarborteac" + + "hes-yogasawaracingxn--90aeroportalabamagasakishimabaraogakibichu" + + "oxn--90aishobarakawagoexn--90azhytomyravendbarsycenterprisesakik" + + "ugawalmartaxihuanflfanfshostrowwlkpmgjovikaragandautoscanadaegua" + + "mbulancehimejibmdgcagliaribeiraokinawashirosatochiokinoshimaizur" + + "uhreviewskrakoweddingjerstadotsuruokakamigaharaurskog-holandingj" + + "erdrumetacentrumeteorappalmaserati234lima-cityeatselinogradultat" + + "arantours3-ap-southeast-1kappchizip6xn--9dbhblg6dietcimdbarsyonl" + + "inewhampshirealtysnes3-us-gov-west-1xn--9dbq2axn--9et52uxn--9krt" + + "00axn--andy-iraxn--aroport-byandexn--3bst00misakis-an-actresshin" + + "shinotsurgeryxn--asky-iraxn--aurskog-hland-jnbashkiriaveroykengl" + + "andiscountyolasitempresashibetsukuiitatebayashiibajddarchitectur" + + "ealtorlandiscourses3-eu-west-3utilitiesquare7xn--avery-yuasakuho" + + "kkaidownloadxn--b-5gaxn--b4w605ferdxn--balsan-sdtirol-nsbsowaxn-" + + "-bck1b9a5dre4civilizationxn--bdddj-mrabdxn--bearalvhki-y4axn--be" + + "rlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nachikat" + + "suuraxn--bievt-0qa2xn--bjarky-fyaotsurreyxn--bjddar-ptargets-itr" + + "evisohughesopotrentinsud-tirolxn--blt-elabourxn--bmlo-graingerxn" + + "--bod-2natalxn--bozen-sdtirol-2obanazawaxn--brnny-wuacademy-fire" + + "wall-gatewayxn--brnnysund-m8accident-investigation-aptibleadpage" + + "st-mon-blogueurovision-rancherkasydneyxn--brum-voagatritonxn--bt" + + "sfjord-9zaxn--bulsan-sdtirol-nsbasicservercelliguriavocatanzarow" + + "edeployombolzano-altoadigemrevistanbulsan-sudtirolavagiskeu-1xn-" + + "-c1avgxn--c2br7gxn--c3s14misasaguris-an-anarchistoricalsocietyxn" + + "--cck2b3basilicataniavoues3-external-1xn--cesena-forl-mcbremange" + + "rxn--cesenaforl-i8axn--cg4bkis-lostrolekamakurazakiwakunigamihar" + + "unusualpersonxn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a2o" + + "xn--correios-e-telecomunicaes-ghc29axn--czr694basketballyngenvir" + + "onmentalconservationrenderxn--czrs0troandinosaurepaircraftingvol" + + "lombardiamondsor-odalxn--czru2dxn--czrw28batodayonagunicommbanka" + + "rasjohkamikoaniikappuboliviajessheimetlifeinsuranceu-4xn--d1acj3" + + "batsfjordishakotanhktcp4xn--d1alfaromeoxn--d1atrogstadxn--d5qv7z" + + "876civilwarmanagementoystre-slidrettozawaxn--davvenjrga-y4axn--d" + + "jrs72d6uyxn--djty4konyvelolxn--dnna-grajewolterskluwerxn--drbak-" + + "wuaxn--dyry-iraxn--e1a4clanbibaidarmeniaxn--eckvdtc9dxn--efvn9sp" + + "eedpartnersolognexn--efvy88hair-surveillancexn--ehqz56nxn--elqq1" + + "6hakatanortonxn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct429ko" + + "oris-a-personaltrainerxn--fhbeiarnxn--finny-yuaxn--fiq228c5hspje" + + "lkavikommunexn--fiq64bauhausposts-and-telecommunicationswatch-an" + + "d-clockerxn--fiqs8spreadbettingxn--fiqz9spydebergxn--fjord-lraxn" + + "--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--forl-cesena-fcbsrl" + + "xn--forlcesena-c8axn--fpcrj9c3dxn--frde-grandrapidsrtrentinsudti" + + "rolxn--frna-woaraisaijosoyrovigotpantheonsitextileirvikopervikha" + + "rkivalleeaosteinkjerusalembroideryxn--frya-hraxn--fzc2c9e2cldmai" + + "lubindalublindesnesannohelpagesanokarumaifashionxn--fzys8d69uvgm" + + "ailxn--g2xx48clickasaokamiminersantabarbaraxn--gckr3f0fauskedsmo" + + "korsetagayasells-for-ufcfanxn--gecrj9clinichirurgiens-dentistes-" + + "en-francexn--ggaviika-8ya47hakodatexn--gildeskl-g0axn--givuotna-" + + "8yasakaiminatoyookaniepcexn--gjvik-wuaxn--gk3at1exn--gls-elacaix" + + "axn--gmq050is-not-certifiedugit-pagespeedmobilizeroticahcesuoloa" + + "nshintomikasaharaxn--gmqw5axn--h-2failxn--h1aeghakonexn--h2breg3" + + "evenesrvaporcloudxn--h2brj9c8cliniquenoharaxn--h3cuzk1digitalxn-" + + "-hbmer-xqaxn--hcesuolo-7ya35beneventogakushimotoganewhollandisre" + + "chtrainingladefinimakanegasakiraxaustevoll-o-g-i-naval-d-aosta-v" + + "alleyokosukanumazuryokotebinagisobetsumidatlantic66xn--hery-irax" + + "n--hgebostad-g3axn--hkkinen-5waxn--hmmrfeasta-s4accident-prevent" + + "ion-riopretobamaceratabuseating-organicbcn-north-1xn--hnefoss-q1" + + "axn--hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-" + + "q1axn--hylandet-54axn--i1b6b1a6a2exn--imr513nxn--indery-fyasugiv" + + "ingxn--io0a7is-savedunetbankazunow-dnshinyoshitomiokamitondabaya" + + "shiogamagoriziaxn--j1aefbsbxn--12cfi8ixb8luxuryxn--j1amhakubahcc" + + "avuotnagarahkkeravjuegoshikikuchikuseikarugalsacexn--j6w193gxn--" + + "jlq61u9w7bentleyoriikarasjokarasuyamarumorimachidaxn--jlster-bya" + + "suokanoyaltakashimarugame-hostrowieclintonoshoesantacruzsantafed" + + "jejuifminamifuranoxn--jrpeland-54axn--jvr189misawaxn--k7yn95exn-" + + "-karmy-yuaxn--kbrq7oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn-" + + "-klt787dxn--kltp7dxn--kltx9axn--klty5xn--3ds443gxn--koluokta-7ya" + + "57hakuis-a-landscaperxn--kprw13dxn--kpry57dxn--kpu716fbx-osassar" + + "is-a-doctorayxn--kput3is-slickddielddanuorrikuzentakatajimidoris" + + "sagamiharaxn--krager-gyatomitamamuraxn--kranghke-b0axn--krdshera" + + "d-m8axn--krehamn-dxaxn--krjohka-hwab49jdfastlylbarcelonagareyama" + + "keupowiat-band-campaniaustinnavigationavoizumizakibigawajudygarl" + + "anddnslivelanddnss3-ca-central-1xn--ksnes-uuaxn--kvfjord-nxaxn--" + + "kvitsy-fyatsukanraxn--kvnangen-k0axn--l-1fairwindstorfjordxn--l1" + + "accentureklamborghinikolaeventstorjdevcloudfunctionshiojirishiri" + + "fujiedaxn--laheadju-7yatsushiroxn--langevg-jxaxn--lcvr32dxn--ldi" + + "ngen-q1axn--leagaviika-52beppublishproxyzgorzeleccoffeedbackplan" + + "eapplicationcloudaccesscambridgestonewyorkshirecifedexhibitionhl" + + "fanhs3-us-west-1xn--lesund-huaxn--lgbbat1ad8jelenia-goraxn--lgrd" + + "-poacctromsakakinokiaxn--lhppi-xqaxn--linds-pramericanartromsoja" + + "misonxn--lns-qlanxesstpetersburgxn--loabt-0qaxn--lrdal-sraxn--lr" + + "enskog-54axn--lt-liaclothingdustdataitogliattiresantamariakexn--" + + "lten-granexn--lury-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--" + + "mgb2ddestreamuneuesolundbeckomforbarreauctionredumbrella-speziau" + + "strheimatunduhrennesoyokozebinordreisa-geek12xn--mgb9awbfbxosaud" + + "axn--mgba3a3ejtrusteexn--mgba3a4f16axn--mgba3a4franamizuholdings" + + "tudioxn--mgba7c0bbn0axn--mgbaakc7dvfedorapeoplegnicanonoichinomi" + + "yakexn--mgbaam7a8hakusanagochijiwadellogliastradingxn--mgbab2bdx" + + "n--mgbai9a5eva00beskidyn-ip24xn--mgbai9azgqp6jeonnamerikawauexn-" + + "-mgbayh7gpaleoxn--mgbb9fbpobihirosakikamijimatsuzakis-uberleetre" + + "ntino-altoadigexn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mg" + + "berp4a5d4a87gxn--mgberp4a5d4arxn--mgbgu82axn--mgbi4ecexposedxn--" + + "mgbpl2fhskydivingxn--mgbqly7c0a67fbcn-northwest-1xn--mgbqly7cvaf" + + "ranziskanerimaringatlantakaharuxn--mgbt3dhdxn--mgbtf8flatangerxn" + + "--mgbtx2bestbuyshouses3-us-west-2xn--mgbx4cd0abbvieeexn--mix082f" + + "edoraprojectrapaniizaxn--mix891feiraquarelleaseeklogesauheradynn" + + "sasebofageorgeorgiaxn--mjndalen-64axn--mk0axin-dslgbtrvareserveh" + + "ttpinkmpspbargainstantcloudfrontdoorhcloudiscoveryomitanoceanogr" + + "aphiqueu-3xn--mk1bu44cngrondarxn--mkru45is-very-badajozxn--mlatv" + + "uopmi-s4axn--mli-tlapyxn--mlselv-iuaxn--moreke-juaxn--mori-qsaku" + + "ragawaxn--mosjen-eyawaraxn--mot-tlaquilancomeldalxn--mre-og-roms" + + "dal-qqbetainaboxfusejnyoshiokanzakiyokawaraxn--msy-ula0haldenxn-" + + "-mtta-vrjjat-k7aflakstadaokagakicks-assnasaarlandxn--muost-0qaxn" + + "--mxtq1misconfusedxn--ngbc5azdxn--ngbe9e0axn--ngbrxn--3e0b707exn" + + "--nit225koryokamikawanehonbetsurutaharaxn--nmesjevuemie-tcbalsan" + + "-suedtirolkuszczytnombresciaxn--nnx388axn--nodessakurais-very-ev" + + "illagexn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--n" + + "ttery-byaeservehumourxn--nvuotna-hwaxn--nyqy26axn--o1achattanoog" + + "anordlandxn--o3cw4halsaintlouis-a-anarchistoireggio-emilia-romag" + + "nakatsugawaxn--o3cyx2axn--od0algxn--od0aq3bhzcaseihicampobassoci" + + "atest-iservecounterstrikeverbankaratevje-og-hornnes3-website-ap-" + + "northeast-1xn--ogbpf8flekkefjordxn--oppegrd-ixaxn--ostery-fyawat" + + "ahamaxn--osyro-wuaxn--otu796dxn--p1acfermobilyxn--p1ais-very-goo" + + "dyearxn--pbt977cnpyatigorskodjeffersonxn--pgbs0dhlxn--porsgu-sta" + + "26ferraraxn--pssu33lxn--pssy2uxn--q9jyb4cnsantoandreamhostersanu" + + "kis-a-cubicle-slavellinodearthachiojiyaitakanabeautysvardoesntex" + + "isteingeekashibatakasugais-a-democratozsdeltaiwanairforcebetsuik" + + "idsmynasushiobarackmazerbaijan-mayendoftheinternetflixilovecolle" + + "gefantasyleaguernseyxn--qcka1pmckinseyxn--qqqt11mishimatsumaebas" + + "hikshacknetrentino-sudtirolxn--qxamusementdllxn--rady-iraxn--rda" + + "l-poaxn--rde-ularvikosaigawaxn--rdy-0nabaris-very-nicexn--rennes" + + "y-v1axn--rhkkervju-01aferrarivnexn--rholt-mragowoodsidemoneyxn--" + + "rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-5nativeamericananti" + + "questudynamisches-dnsolutionsokndalxn--risr-iraxn--rland-uuaxn--" + + "rlingen-mxaxn--rmskog-byaxn--rny31hammarfeastafricapetownnews-st" + + "agingxn--rovu88bieigersundivtasvuodnakamuratajirittogojomedizinh" + + "istorisches3-website-ap-southeast-1xn--rros-granvindafjordxn--rs" + + "kog-uuaxn--rst-0naturalhistorymuseumcenterxn--rsta-francaisehara" + + "xn--rvc1e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1faithruherecipes" + + "caravantaarpippulawyxn--s9brj9cntrani-andria-barletta-trani-andr" + + "iaxn--sandnessjen-ogbielawalterxn--sandy-yuaxn--sdtirol-n2axn--s" + + "eral-lraxn--ses554gxn--sgne-gratangenxn--skierv-utazastuff-4-sal" + + "exn--skjervy-v1axn--skjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat" + + "-5naturalsciencesnaturellestufftoread-booksnesomaxn--slt-elabcie" + + "szynxn--smla-hraxn--smna-gratis-a-bulls-fanxn--snase-nraxn--sndr" + + "e-land-0cbielladbrokes3-website-ap-southeast-2xn--snes-poaxn--sn" + + "sa-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-vara" + + "nger-ggbieszczadygeyachiyodaejeonbuklugsmilebtimnetzjampagefront" + + "appanamatta-varjjatjeldsundivttasvuotnakaniikawatanaguraxn--srfo" + + "ld-byaxn--srreisa-q1axn--srum-grazxn--stfold-9xaxn--stjrdal-s1ax" + + "n--stjrdalshalsen-sqbievathletajimabaridagawakuyabukijobserverra" + + "nkoshigayachimataikikonaikawachinaganoharamcoachampionshiphoptob" + + "ishimagazineat-urlillyukiiyamanouchikuhokuryugasakitaurayasudaxn" + + "--stre-toten-zcbifukagawarszawashingtondclkaratsuginamikatagamil" + + "itaryukuhashimoichinosekigaharaxn--t60b56axn--tckweatherchannelx" + + "n--tiq49xqyjetztrentino-s-tirolxn--tjme-hraxn--tn0agrinet-freaks" + + "tuttgartrentinsued-tirolxn--tnsberg-q1axn--tor131oxn--trany-yuax" + + "n--trentin-sd-tirol-rzbigv-infoodnetworkangerxn--trentin-sdtirol" + + "-7vbihorologyurihonjournalistjohnikonanporohtawaramotoineppuglia" + + "xn--trentino-sd-tirol-c3bikedagestangeometre-experts-comptables3" + + "-website-eu-west-1xn--trentino-sdtirol-szbilbaogashimadachicago-" + + "vipsinaappanasonicasertairanzaninohekinannestadiyusuharaxn--tren" + + "tinosd-tirol-rzbillustrationthewifiatmallorcadaques3-website-sa-" + + "east-1xn--trentinosdtirol-7vbiomutashinain-the-bandain-vpncasino" + + "rdkapparaglidinglassassinationalheritagexn--trentinsd-tirol-6vbi" + + "rdartcenterprisecloudappspotagerxn--trentinsdtirol-nsbirkenesodd" + + "tangenovaraholtaleninomiyakonojorpelandnparisor-fronirasakincheo" + + "nishiazaindianapolis-a-bloggerxn--trgstad-r1axn--trna-woaxn--tro" + + "ms-zuaxn--tysvr-vraxn--uc0atvarggatrentinsuedtirolxn--uc0ay4axn-" + + "-uist22hamurakamigoris-a-lawyerxn--uisz3gxn--unjrga-rtargivestby" + + "temarkosakaerodromegallupinbarrel-of-knowledgemologicallazioddau" + + "thordalandeportenrightathomeftpalmspringsakereportatsunobiraukra" + + "anghkeymachineustarhubss3-eu-central-1xn--unup4yxn--uuwu58axn--v" + + "ads-jraxn--valle-aoste-ebbtrysiljanxn--valle-d-aoste-ehbodollsus" + + "akis-into-cartoonshintokushimaxn--valleaoste-e7axn--valledaoste-" + + "ebbvacationsusonoxn--vard-jraxn--vegrshei-c0axn--vermgensberater" + + "-ctbirthplacexn--vermgensberatung-pwbjarkoyusuisserveircateringe" + + "buildingleezexn--vestvgy-ixa6oxn--vg-yiabkhaziaxn--vgan-qoaxn--v" + + "gsy-qoa0jevnakershuscultureggiocalabriaxn--vgu402coguchikuzenxn-" + + "-vhquvaroyxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla" + + "5gxn--vuq861bjerkreimbamblebesbyglandroverhallaakesvuemielecceu-" + + "2xn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1collectionxn" + + "--wgbl6axn--xhq521bjugnieznord-frontierxn--xkc2al3hye2axn--xkc2d" + + "l3a5ee0handsonxn--y9a3aquariumissilelxn--yer-znaturbruksgymnxn--" + + "yfro4i67oxn--ygarden-p1axn--ygbi2ammxn--3hcrj9circustomerxn--yst" + + "re-slidre-ujblackfridayuu2-localhostoregontrailroadrangedalimano" + + "warudaxn--zbx025dxn--zf0ao64axn--zf0avxn--3oq18vl8pn36axn--zfr16" + + "4bloombergbauernishigovtjmaxxxboxenapponazure-mobilexnbayxz" // nodes is the list of nodes. Each node is represented as a uint32, which // encodes the node's children, wildcard bit and node type (as an index into @@ -519,8757 +522,8860 @@ const text = "0emmafann-arboretumbriamallamaceiobirabogadodgeiseiyoichippubets" // [15 bits] text index // [ 6 bits] text length var nodes = [...]uint32{ - 0x331903, - 0x3ac504, - 0x2dc686, - 0x257e03, - 0x257e06, - 0x390646, - 0x3b1283, - 0x2e1dc4, - 0x200947, - 0x2dc2c8, - 0x1a00742, - 0x1f47007, - 0x37a1c9, - 0x2cd70a, - 0x2cd70b, - 0x22c4c3, - 0x2cf7c6, - 0x234085, - 0x2200a42, - 0x3b8584, - 0x260503, - 0x280745, - 0x2609682, - 0x32cd43, - 0x2b321c4, - 0x209685, - 0x2e00102, - 0x274d0e, + 0x32bd43, + 0x3ac204, + 0x2e8b86, + 0x2fe083, + 0x2fe086, + 0x389b46, + 0x3b0ec3, + 0x31f984, + 0x309b87, + 0x2e87c8, + 0x1a000c2, + 0x1f3dd07, + 0x375009, + 0x2c444a, + 0x2c444b, + 0x22d043, + 0x2342c5, + 0x2206702, + 0x2483c4, + 0x25ba43, + 0x331e45, + 0x260dcc2, + 0x32eec3, + 0x2a1e744, + 0x30b345, + 0x2e240c2, + 0x26dc8e, 0x253f83, - 0x3c6846, - 0x3204e82, - 0x303d47, - 0x236e06, - 0x360b9c2, - 0x28d683, - 0x28d684, - 0x20b9c6, - 0x22b1c8, - 0x2947c6, - 0x314d04, - 0x3a00602, - 0x3539c9, - 0x225847, - 0x208646, - 0x3777c9, - 0x352388, - 0x335184, - 0x33dd46, - 0x23c906, - 0x3e00582, - 0x25d34f, - 0x20e18e, - 0x221944, - 0x219505, - 0x331805, - 0x2f0149, - 0x240589, - 0x20c1c7, - 0x363186, - 0x207443, - 0x4206fc2, - 0x2240c3, - 0x24e84a, - 0x4603643, - 0x27d905, - 0x306242, - 0x39ebc9, - 0x4e00282, - 0x22a184, - 0x33be06, - 0x32d945, - 0x3717c4, - 0x5612cc4, - 0x229a43, - 0x232e04, - 0x5a04442, - 0x385544, - 0x5e8b584, - 0x2056ca, - 0x6201782, - 0x33a9c7, - 0x38f4c8, - 0x7203782, - 0x26cb87, - 0x22c844, - 0x2cb807, - 0x22c845, - 0x34c6c7, - 0x27e586, - 0x32cac4, - 0x32cac5, - 0x285507, - 0x8207682, - 0x334183, - 0x21aa02, - 0x38e2c3, - 0x8613b82, - 0x21ad85, - 0x8a03c82, - 0x2f4bc4, - 0x284945, - 0x221887, - 0x28188e, - 0x2874c4, - 0x2348c4, - 0x226c43, - 0x3c2709, - 0x226c4b, - 0x24a1c8, - 0x377588, - 0x258f08, - 0x2183c8, - 0x334fca, - 0x34c5c7, - 0x2d0286, - 0x8e4ee42, - 0x3c8e43, - 0x3ca983, - 0x3501c4, - 0x3b12c3, - 0x3c8e83, - 0x1742942, - 0x9200f02, - 0x28cc45, - 0x29fbc6, - 0x24bf44, - 0x353087, - 0x239d86, - 0x2c3204, - 0x36fdc7, - 0x200f03, - 0x96d45c2, - 0x9b29902, - 0x9e299c2, - 0x2299c6, - 0xa200882, - 0x2b6385, - 0x343e83, - 0x3b6844, - 0x2f60c4, - 0x2f60c5, - 0x3bc883, - 0xa64dd03, - 0xab447c2, - 0x2992c5, - 0x3cb84b, - 0x27cf8b, - 0x274a84, - 0x3ccc49, - 0x3d3504, - 0xae0a302, - 0x3d8d83, - 0x20a303, - 0xb206ac2, - 0x306b03, - 0x20a58a, - 0xb600302, - 0x2e44c5, - 0x2e7d0a, - 0x3840c4, - 0x20b183, - 0x20cfc4, - 0x2101c3, - 0x2101c4, - 0x2101c7, - 0x210d05, - 0x211dc6, - 0x212086, - 0x213603, - 0x215a48, - 0x20c643, - 0xba004c2, - 0x248688, - 0x20eecb, - 0x21d1c8, - 0x21db86, - 0x21eb07, - 0x223408, - 0xca064c2, - 0xce1c002, - 0x33d088, - 0x30c0c7, - 0x28e105, - 0x35c208, - 0xd227508, - 0x36fec3, - 0x228644, - 0x350202, - 0xd629c82, - 0xda012c2, - 0xe22a242, - 0x22a243, - 0xe605382, - 0x32b383, - 0x239444, - 0x208e43, - 0x286784, - 0x208e4b, - 0x205543, - 0x2efb06, - 0x205544, - 0x2c0e4e, - 0x24ad45, - 0x3c6948, - 0x389a47, - 0x389a4a, - 0x226e03, - 0x3ac307, - 0x226e05, - 0x22fc84, - 0x2574c6, - 0x2574c7, - 0x2ed284, - 0x2f8907, - 0x30bb04, - 0x205384, - 0x205386, - 0x270ec4, - 0x337fc6, - 0x20e9c3, - 0x35bfc8, - 0x385288, - 0x234883, - 0x306ac3, - 0x34dc84, - 0x35e803, - 0xea0ecc2, - 0xee99502, - 0x210483, - 0x246bc6, - 0x354a83, - 0x230344, - 0xf250202, - 0x250203, - 0x34cec3, - 0x213fc2, - 0xf600d82, - 0x2ce686, - 0x2353c7, - 0x38f947, - 0x39c105, - 0x3c1204, - 0x29cf45, - 0x297d07, - 0x2eb549, - 0x2f10c6, - 0x2f5dc8, - 0x306c46, - 0xfa01542, - 0x328148, - 0x30a606, - 0x354585, - 0x324c07, - 0x326884, - 0x326885, - 0x280384, - 0x280388, - 0xfe14742, - 0x10203f02, - 0x354286, - 0x203f08, - 0x361bc5, - 0x362906, - 0x368888, - 0x389188, - 0x1060e585, - 0x10a73304, - 0x37c687, - 0x10e98482, - 0x11392ac2, - 0x12604502, - 0x33bf05, - 0x2b00c5, - 0x27d506, - 0x2f5307, - 0x22ab07, - 0x12e2cc43, - 0x275cc7, - 0x2e5dc8, - 0x1c62cc49, - 0x274ec7, - 0x22dc47, - 0x22e508, - 0x22ed06, - 0x22f786, - 0x23070c, - 0x23148a, - 0x231e07, - 0x233f4b, - 0x235207, - 0x23520e, - 0x1ca36184, - 0x236384, - 0x239307, - 0x262087, - 0x23f5c6, - 0x23f5c7, - 0x23fa07, - 0x1ce33782, - 0x240c86, - 0x240c8a, - 0x24148b, - 0x2437c7, - 0x244245, - 0x245303, - 0x245986, - 0x245987, - 0x22b6c3, - 0x1d203b82, - 0x24620a, - 0x1d77b682, - 0x1da4a0c2, - 0x1de48382, - 0x1e236f02, - 0x249605, - 0x249d84, - 0x1ea01482, - 0x3855c5, - 0x233343, - 0x2a4185, - 0x2182c4, - 0x20ce84, - 0x237946, - 0x3cf286, - 0x2b2483, - 0x3a8844, - 0x378343, - 0x1fa046c2, - 0x21ee84, - 0x37cc06, - 0x21ee85, - 0x2635c6, - 0x324d08, - 0x237b44, - 0x310208, - 0x22af85, - 0x2491c8, - 0x2c7d46, - 0x326c87, - 0x293484, - 0x20e93486, - 0x275fc3, - 0x3a04c3, - 0x325c08, - 0x334dc4, - 0x368ec7, - 0x21202a46, - 0x2e5309, - 0x334688, - 0x259588, - 0x26d584, - 0x337443, - 0x233a42, - 0x216979c2, - 0x21a12b82, - 0x34ae43, - 0x21e00a82, - 0x22b644, - 0x24f606, - 0x200a85, - 0x242d83, - 0x22cf84, - 0x2c0107, - 0x27e1c3, - 0x2bc288, - 0x20d085, - 0x25ef83, - 0x2848c5, - 0x284a04, - 0x30a306, - 0x216344, - 0x21df86, - 0x2217c6, - 0x33c5c4, - 0x2355c3, - 0x22212f02, - 0x226346c5, - 0x201903, - 0x22e01502, - 0x205b03, - 0x217d45, - 0x232ec3, - 0x23232ec9, - 0x236043c2, - 0x23e03102, - 0x298e05, - 0x214646, - 0x3bfc46, - 0x339908, - 0x33990b, - 0x3bd14b, - 0x30c445, - 0x2d4d09, - 0x1601702, - 0x2d9788, - 0x20f484, - 0x24601d42, - 0x3c2d43, - 0x24e62246, - 0x354908, - 0x252003c2, - 0x226548, - 0x25610ac2, - 0x286fca, - 0x25adb343, - 0x2637a806, - 0x27c7c8, - 0x3167c8, - 0x2e1a86, - 0x388607, - 0x25d547, - 0x23c48a, - 0x384144, - 0x366f84, - 0x379b09, - 0x267abf05, - 0x20e386, - 0x200143, - 0x2785c4, - 0x26a04b04, - 0x204b07, - 0x23a5c7, - 0x296f04, - 0x26a105, - 0x27d5c8, - 0x24a687, - 0x24ab07, - 0x26e1cd02, - 0x287384, - 0x358b08, - 0x24b9c4, - 0x24f1c4, - 0x24f805, - 0x24f947, - 0x27250989, - 0x250484, - 0x251109, - 0x251348, - 0x251f04, - 0x251f07, - 0x27652683, - 0x252807, - 0x160d342, - 0x16bce82, - 0x253986, - 0x253fc7, - 0x255144, - 0x256ac7, - 0x258107, - 0x258843, - 0x233bc2, - 0x21f582, - 0x276703, - 0x276704, - 0x27670b, - 0x377688, - 0x25e944, - 0x25ab05, - 0x25c6c7, - 0x25df45, - 0x2e334a, - 0x25e883, - 0x27a0c542, - 0x20c544, - 0x261e49, - 0x266843, - 0x266907, - 0x3afa09, - 0x299ac8, - 0x238443, - 0x28aec7, - 0x28b689, - 0x216fc3, - 0x292804, - 0x293a89, - 0x295d86, - 0x221b83, - 0x200a02, - 0x236a03, - 0x2bcc87, - 0x236a05, - 0x38b206, - 0x23e404, - 0x309185, - 0x32bc03, - 0x213846, - 0x201282, - 0x24dcc4, - 0x27e09542, - 0x28363c03, - 0x28600b42, - 0x24d083, - 0x212504, - 0x212507, - 0x3d3806, - 0x204ac2, - 0x28a04a82, - 0x324f04, - 0x28e47842, - 0x29202382, - 0x2bec44, - 0x2bec45, - 0x202385, - 0x36d146, - 0x2960a942, - 0x3b8d05, - 0x3cc045, - 0x20a943, - 0x212686, - 0x212fc5, - 0x229942, - 0x361805, - 0x229944, - 0x237a83, - 0x237cc3, - 0x29a0ae82, - 0x2332c7, - 0x255444, - 0x255449, - 0x2784c4, - 0x2998c3, - 0x3a3ac8, - 0x29eaff44, - 0x2aff46, - 0x2b6003, - 0x25b343, - 0x215e43, - 0x2a2f3402, - 0x3063c2, - 0x2a6040c2, - 0x345a88, - 0x38ce08, - 0x3b18c6, - 0x28e645, - 0x28e2c5, - 0x206907, - 0x229505, - 0x24cc42, - 0x2aaa3242, - 0x2ae03ac2, - 0x238888, - 0x328085, - 0x2fbe44, - 0x263505, - 0x24b547, - 0x292384, - 0x246102, - 0x2b203142, - 0x359244, - 0x223d47, - 0x29a347, - 0x34c684, - 0x3c9603, - 0x2347c4, - 0x2347c8, - 0x22fac6, - 0x25734a, - 0x22f284, - 0x2a1d48, - 0x2961c4, - 0x21ec06, - 0x2a3204, - 0x33c206, - 0x255709, - 0x237187, - 0x226b03, - 0x2b65fec2, - 0x26d803, - 0x2783c2, - 0x2ba06d82, - 0x2fa306, - 0x383148, - 0x2b2387, - 0x228b89, - 0x2a1909, - 0x2b41c5, - 0x2b51c9, - 0x2b5985, - 0x2b5ac9, - 0x2b6ec5, - 0x2b7dc8, - 0x2be3d3c4, - 0x2c258987, - 0x22e003, - 0x2b7fc7, - 0x22e006, - 0x2b83c7, - 0x2af1c5, - 0x2c2903, - 0x2c631242, - 0x20b3c4, - 0x2ca540c2, - 0x2ce58e82, - 0x350cc6, - 0x38f445, - 0x2bb407, - 0x27f003, - 0x201c04, - 0x20c9c3, - 0x33cdc3, - 0x2d205142, - 0x2da01d02, - 0x390744, - 0x233b83, - 0x248ec5, - 0x2de0d282, - 0x2e6082c2, - 0x2daec6, - 0x334f04, - 0x323884, - 0x32388a, - 0x2ee01582, - 0x26b0c3, - 0x21920a, - 0x21cc88, - 0x2f21f504, - 0x2019c3, - 0x208f43, - 0x278b09, - 0x224d49, - 0x2c0206, - 0x2f613303, - 0x213305, - 0x31990d, - 0x21ce46, - 0x31c14b, - 0x2fa00802, - 0x32ba88, - 0x3220bc02, - 0x326008c2, - 0x320745, - 0x32a00bc2, - 0x297447, - 0x2b9f07, - 0x213183, - 0x32f488, - 0x32e02282, - 0x2aba04, - 0x3343c3, - 0x38c205, - 0x241b86, - 0x21d704, - 0x306a83, - 0x2bdb43, - 0x33214bc2, - 0x30c3c4, - 0x3b9dc5, - 0x2bc887, - 0x287f83, - 0x2bd543, - 0x161a982, - 0x2bd603, - 0x2bdac3, - 0x3360d382, - 0x33b104, - 0x3cf486, - 0x3a1803, - 0x2be243, - 0x33a4e2c2, - 0x24e2c8, - 0x2bf204, - 0x33b6c6, - 0x260e07, - 0x27aec6, - 0x2b8b04, - 0x41605e02, - 0x22decb, - 0x3008ce, - 0x2151cf, - 0x366883, - 0x41e5f482, - 0x1643dc2, - 0x42207542, - 0x29f583, - 0x2562c3, - 0x21a146, - 0x2eb7c6, - 0x336447, - 0x309b84, - 0x42614782, - 0x42a0d582, - 0x2c3745, - 0x2f9787, - 0x3a3146, - 0x42e4a002, - 0x3cbf84, - 0x2c3883, - 0x43253a82, - 0x437767c3, - 0x2c4604, - 0x2c9ec9, - 0x43ad1d42, - 0x43e16d02, - 0x2888c5, - 0x442d2e02, - 0x44600682, - 0x365e87, - 0x210609, - 0x37a44b, - 0x25d305, - 0x293e89, - 0x3952c6, - 0x2d3107, - 0x44a060c4, - 0x2cbb49, - 0x37f007, - 0x2114c7, - 0x226683, - 0x2beac6, - 0x322907, - 0x246e43, - 0x2a0886, - 0x4520a842, - 0x45633142, - 0x216143, - 0x211605, - 0x227807, - 0x27d9c6, - 0x236985, - 0x2514c4, - 0x2ae085, - 0x392404, - 0x45a06742, - 0x377c47, - 0x2d0d44, - 0x224c44, - 0x224c4d, - 0x2e0009, - 0x30ccc8, - 0x25c044, - 0x34d145, - 0x3a9547, - 0x20f2c4, - 0x26b087, - 0x323f05, - 0x45e16c44, - 0x2bdc85, - 0x207b44, - 0x2924c6, - 0x2f5105, - 0x462213c2, - 0x286803, - 0x391084, - 0x391085, - 0x350746, - 0x236ac5, - 0x2383c4, - 0x25cd03, - 0x220446, - 0x228205, - 0x22a705, - 0x2f5204, - 0x2f3943, - 0x3051cc, - 0x466bc982, - 0x46a1ef42, - 0x46e08242, - 0x223643, - 0x223644, - 0x4720d642, - 0x350e88, - 0x38b2c5, - 0x23eec4, - 0x2471c6, - 0x47608ec2, - 0x47a0e482, - 0x47e000c2, - 0x29e605, - 0x33c486, - 0x221504, - 0x20bf06, - 0x33a786, - 0x230183, - 0x483492ca, - 0x278405, - 0x24e803, - 0x220246, - 0x3a91c9, - 0x220247, - 0x2b7788, - 0x352249, - 0x27ee48, - 0x3c5306, - 0x2e5e83, - 0x48675d42, - 0x3a1cc8, - 0x48a51402, - 0x48e02bc2, - 0x228c03, - 0x2eb3c5, - 0x2a6184, - 0x2d3249, - 0x2eeb44, - 0x21c688, - 0x2092c3, - 0x496092c4, - 0x214688, - 0x224b87, - 0x49a18ec2, - 0x23d382, - 0x331785, - 0x267bc9, - 0x20e403, - 0x28de84, - 0x3198c4, - 0x213cc3, - 0x28e88a, - 0x49e7f742, - 0x4a20b202, - 0x2d4543, - 0x393fc3, - 0x1600082, - 0x200083, - 0x4a61c0c2, - 0x4aa08302, - 0x4ae1af04, - 0x21af06, - 0x2db106, - 0x242384, - 0x286103, - 0x3b4cc3, - 0x280ec3, - 0x241806, - 0x3a4c45, - 0x2d46c7, - 0x2d7e85, - 0x2d9346, - 0x2da288, - 0x2da486, - 0x269c04, - 0x2a778b, - 0x2de103, - 0x2de105, - 0x2de588, - 0x2055c2, - 0x366182, - 0x4b249682, - 0x4b602c42, - 0x208583, - 0x4ba728c2, - 0x2728c3, - 0x2deec3, - 0x4c220982, - 0x4c6e3e86, - 0x25ddc6, - 0x4cae3fc2, - 0x4ce0a342, - 0x4d237d02, - 0x4d69f502, - 0x4da1c8c2, - 0x4de032c2, - 0x21e6c3, - 0x209745, - 0x34d2c6, - 0x4e221904, - 0x37ca0a, - 0x3a5a06, - 0x256644, - 0x206cc3, - 0x4ee047c2, - 0x2015c2, - 0x222a03, - 0x4f21c103, - 0x366707, - 0x2f5007, - 0x50a76807, - 0x3c7bc7, - 0x2272c3, - 0x38b64a, - 0x315dc4, - 0x22ac44, - 0x22ac4a, - 0x23aa45, - 0x50e0e342, - 0x256a83, - 0x51201a02, - 0x252043, - 0x26d7c3, - 0x51a01bc2, - 0x275c44, - 0x206b04, - 0x335905, - 0x31ce45, - 0x2b4f06, - 0x31b546, - 0x51e4ffc2, - 0x52202fc2, - 0x382745, - 0x25dad2, - 0x364506, - 0x275283, - 0x29ec46, - 0x310845, - 0x160a5c2, - 0x5a60ab02, - 0x3709c3, - 0x20ab03, - 0x29aec3, - 0x5aa09342, - 0x23f543, - 0x5ae07482, - 0x200843, - 0x33b148, - 0x27d543, - 0x2b4046, - 0x32e207, - 0x320186, - 0x32018b, - 0x256587, - 0x312dc4, - 0x5b606342, - 0x38b145, - 0x5ba0f0c3, - 0x22c403, - 0x33d505, - 0x38b543, - 0x5bf8b546, - 0x2d990a, - 0x242003, - 0x20b8c4, - 0x203e46, - 0x286486, - 0x5c201ac3, - 0x201ac7, - 0x278a07, - 0x2a9ac5, - 0x367c46, - 0x228243, - 0x5ee128c3, - 0x5f208702, - 0x22f344, - 0x35bdc9, - 0x3c1685, - 0x229604, - 0x35f748, - 0x273a05, - 0x5f7075c5, - 0x245409, - 0x208703, - 0x24a044, - 0x5fa036c2, - 0x2149c3, - 0x5fe8ad42, - 0x28ad46, - 0x162b802, - 0x6029d842, - 0x29e508, - 0x2ac6c3, - 0x2bdbc7, - 0x320405, - 0x2ca0c5, - 0x2ca0cb, - 0x2ed886, - 0x2ca2c6, - 0x2ee0c6, - 0x28ce84, - 0x2e0c06, - 0x606ecd88, - 0x251883, - 0x256103, - 0x276ac4, - 0x316d84, - 0x3196c7, - 0x2f27c5, - 0x60af2902, - 0x60e0a482, - 0x61617c45, - 0x2f5944, - 0x2f594b, - 0x2f5fc8, - 0x259c44, - 0x61a4e302, - 0x61e24a42, - 0x337f43, - 0x2f75c4, - 0x2f7885, - 0x2f8ac7, - 0x2fb984, - 0x34c784, - 0x62213282, - 0x37e8c9, - 0x2fd185, - 0x25d5c5, - 0x2fdd05, - 0x62614903, - 0x2ffc84, - 0x2ffc8b, - 0x300184, - 0x30044b, - 0x300d85, - 0x21530a, - 0x301548, - 0x30174a, - 0x301fc3, - 0x301fca, - 0x62e4ef82, - 0x632031c2, - 0x63600e83, - 0x63b04542, - 0x304543, - 0x63f7a982, - 0x64344602, - 0x305f84, - 0x215b86, - 0x20bc45, - 0x306bc3, - 0x331ec6, - 0x20b745, - 0x3cf784, - 0x64600382, - 0x22b484, - 0x2d498a, - 0x32dbc7, - 0x38f286, - 0x3ac147, - 0x2029c3, - 0x2c4648, - 0x293c4b, - 0x2741c5, - 0x2f1d45, - 0x2f1d46, - 0x37de04, - 0x3b3008, - 0x220b83, - 0x23c804, - 0x23c807, - 0x312a06, - 0x26fa46, - 0x2c0c8a, - 0x244f44, - 0x244f4a, - 0x64a81286, - 0x281287, - 0x25ab87, - 0x281f44, - 0x281f49, - 0x237805, - 0x27ea4b, - 0x2f3cc3, - 0x21e143, - 0x64e1a683, - 0x328a84, - 0x65204102, - 0x225286, - 0x656c2685, - 0x29ee85, - 0x21e3c6, - 0x2ab4c4, - 0x65a04c42, - 0x245344, - 0x65e01202, - 0x201205, - 0x2ef404, - 0x66a20f83, - 0x66e03402, - 0x203403, - 0x362b06, - 0x67208a82, - 0x3637c8, - 0x2200c4, - 0x2200c6, - 0x394846, - 0x25c784, - 0x2203c5, - 0x273208, - 0x273b07, - 0x324107, - 0x32410f, - 0x358a06, - 0x2412c3, - 0x24c244, - 0x20c783, - 0x21ed44, - 0x258284, - 0x67604982, - 0x299203, - 0x341703, - 0x67a03582, - 0x20edc3, - 0x3b2d83, - 0x210d8a, - 0x27b187, - 0x25e20c, - 0x25e4c6, - 0x25f046, - 0x260b07, - 0x67e2e947, - 0x270549, - 0x2487c4, - 0x272584, - 0x682085c2, - 0x68600c02, - 0x2c1046, - 0x2018c4, - 0x299686, - 0x22edc8, - 0x2116c4, - 0x297486, - 0x3bfc05, - 0x298508, - 0x23fb03, - 0x374585, - 0x29a843, - 0x25d6c3, - 0x25d6c4, - 0x20c503, - 0x68a4e702, - 0x68e062c2, - 0x2f3b89, - 0x29d745, - 0x29dac4, - 0x29e705, - 0x23ea44, - 0x3d5207, - 0x380545, - 0x692769c4, - 0x2769c8, - 0x2ecf46, - 0x2ed6c4, - 0x2ee9c8, - 0x2f0007, - 0x6960fd02, - 0x2fe284, - 0x3092c4, - 0x39ee47, - 0x69a0fd04, - 0x257d82, - 0x69e11202, - 0x21b7c3, - 0x2887c4, - 0x2b6b43, - 0x2b6b45, - 0x6a207b02, - 0x3062c5, - 0x293202, - 0x30e345, - 0x321a45, - 0x6a60d202, - 0x34ce44, - 0x6aa04f42, - 0x260586, - 0x2c2f06, - 0x267d08, - 0x2cc6c8, - 0x350c44, - 0x30b5c5, - 0x30f189, - 0x30c4c4, - 0x2d98c4, - 0x26dfc3, - 0x6ae3c5c5, - 0x249485, - 0x2b01c4, - 0x379d0d, - 0x27dd02, - 0x366a83, - 0x37f183, - 0x6b202482, - 0x396d85, - 0x21d947, - 0x2c2784, - 0x3c7c87, - 0x352449, - 0x2d4ac9, - 0x204483, - 0x285308, - 0x35fd89, - 0x240ac7, - 0x383305, - 0x3c7a06, - 0x3d5fc6, - 0x307705, - 0x2e0105, - 0x6b600fc2, - 0x289bc5, - 0x2c1748, - 0x2ce446, - 0x6ba02d87, - 0x296e44, - 0x2e8f47, - 0x309d06, - 0x6be2ce82, - 0x350446, - 0x30d9ca, - 0x30e245, - 0x6c2ef5c2, - 0x6c625482, - 0x322c46, - 0x2c8448, - 0x6ca9a507, - 0x6ce01402, - 0x2017c3, - 0x26d286, - 0x221344, - 0x3c73c6, - 0x202086, - 0x26fd4a, - 0x280845, - 0x26d886, - 0x2fe943, - 0x2fe944, - 0x2044c2, - 0x334e83, - 0x6d223682, - 0x2f9703, - 0x219484, - 0x2c8584, - 0x6d6c858a, - 0x213383, - 0x3c53ca, - 0x2398c7, - 0x313686, - 0x260444, - 0x256502, - 0x2b0982, - 0x6da04242, - 0x234783, - 0x25a947, - 0x204247, - 0x294504, - 0x3af547, - 0x2f8bc6, - 0x229ac7, - 0x30c204, - 0x2b9645, - 0x216b45, - 0x6de16082, - 0x21a946, - 0x21cf83, - 0x21d582, - 0x21d586, - 0x6e205202, - 0x6e602b82, - 0x3ad605, - 0x6ea09702, - 0x6ee048c2, - 0x3518c5, - 0x2d6745, - 0x2b3405, - 0x6f25f843, - 0x24f6c5, - 0x2ed947, - 0x2faa45, - 0x341f85, - 0x330184, - 0x307446, - 0x3acb04, - 0x6f604342, - 0x702d9dc5, - 0x396607, - 0x27de48, - 0x252346, - 0x25234d, - 0x252bc9, - 0x252bd2, - 0x3caa05, - 0x30eb03, - 0x70602d02, - 0x3025c4, - 0x21cec3, - 0x30f885, - 0x310e05, - 0x70a5efc2, - 0x25efc3, - 0x70e5d882, - 0x7161c182, - 0x71a03b02, - 0x2d27c5, - 0x3c7dc3, - 0x222908, - 0x71e01142, - 0x722073c2, - 0x275c06, - 0x351b0a, - 0x21e843, - 0x25cc83, - 0x30f403, - 0x73601882, - 0x81a21c82, - 0x82208c02, - 0x206e42, - 0x350249, - 0x2d1184, - 0x2b71c8, - 0x82706c02, - 0x82a02402, - 0x2cf8c5, - 0x234388, - 0x362488, - 0x2f314c, - 0x239803, - 0x82e26b82, - 0x83208f02, - 0x277d46, - 0x314505, - 0x27fe83, - 0x2633c6, - 0x314646, - 0x208f03, - 0x3b8843, - 0x316246, - 0x317d04, - 0x278dc6, - 0x21314a, - 0x2977c4, - 0x3183c4, - 0x318b0a, - 0x8365e7c2, - 0x297945, - 0x31c5ca, - 0x31d085, - 0x31d944, - 0x31da46, - 0x31dbc4, - 0x214c86, - 0x83a57a82, - 0x257a86, - 0x378185, - 0x38c987, - 0x395ac6, - 0x260d04, - 0x2e4d87, - 0x349206, - 0x23b1c5, - 0x23b1c7, - 0x3b9747, - 0x3b974e, - 0x255f86, - 0x3cfd85, - 0x20fc47, - 0x20a383, - 0x33f4c7, - 0x20acc5, - 0x220e44, - 0x228742, - 0x273507, - 0x309c04, - 0x241084, - 0x246f4b, - 0x2199c3, - 0x29a8c7, - 0x2199c4, - 0x2c3487, - 0x228003, - 0x3560cd, - 0x3a4a48, - 0x229344, - 0x2768c5, - 0x31e105, - 0x31e543, - 0x83e1ffc2, - 0x320b03, - 0x321103, - 0x21aac4, - 0x28b785, - 0x21d007, - 0x2fe9c6, - 0x392283, - 0x237d4b, - 0x27bacb, - 0x2bd80b, - 0x2dd34b, - 0x2ef60a, - 0x3392cb, - 0x37308b, - 0x39858c, - 0x3d6b4b, - 0x3d86d1, - 0x32258a, - 0x322dcb, - 0x32308c, - 0x32338b, - 0x3249ca, - 0x32500a, - 0x32654e, - 0x32714b, - 0x32740a, - 0x3295d1, - 0x329a0a, - 0x329f0b, - 0x32a44e, - 0x32afcc, - 0x32bfcb, - 0x32c28e, - 0x32c60c, - 0x32fc4a, - 0x33114c, - 0x8433144a, - 0x332048, - 0x332c09, - 0x33838a, - 0x33860a, - 0x33888b, - 0x340e8e, - 0x342151, - 0x34bac9, - 0x34bd0a, - 0x34c34b, - 0x34e38a, - 0x34ebd6, - 0x34ff4b, - 0x3508ca, - 0x35120a, - 0x352e0b, - 0x353849, - 0x356a49, - 0x35708d, - 0x35828b, - 0x35968b, - 0x35a04b, - 0x35a509, - 0x35ab4e, - 0x35b40a, - 0x35c98a, - 0x35cfca, - 0x35d8cb, - 0x35e10b, - 0x35ee0d, - 0x360e4d, - 0x361490, - 0x36194b, - 0x361f0c, - 0x36268b, - 0x36598b, - 0x3674ce, - 0x36858b, - 0x36858d, - 0x36bc4b, - 0x36c6cf, - 0x36ca8b, - 0x36d2ca, - 0x36d709, - 0x36f449, - 0x8476f7cb, - 0x36fa8e, - 0x370e8b, - 0x371c4f, - 0x37494b, - 0x374c0b, - 0x374ecb, - 0x37560a, - 0x37a049, - 0x37d10f, - 0x38178c, - 0x381b8c, - 0x38218e, - 0x38288f, - 0x382c4e, - 0x383750, - 0x383b4f, - 0x38424e, - 0x384a8c, - 0x384d92, - 0x385711, - 0x385f0e, - 0x38634e, - 0x386c8b, - 0x386c8e, - 0x38700f, - 0x3873ce, - 0x387753, - 0x387c11, - 0x38804c, - 0x38834e, - 0x3887cc, - 0x388d13, - 0x38a250, - 0x38d38c, - 0x38d68c, - 0x38db4b, - 0x39034e, - 0x39084b, - 0x39148b, - 0x39280c, - 0x39788a, - 0x397d8c, - 0x39808c, - 0x398389, - 0x399acb, - 0x399d88, - 0x39a509, - 0x39a50f, - 0x39bc8b, - 0x84b9c38a, - 0x39d44c, - 0x39e60b, - 0x39e8c9, - 0x39f488, - 0x39fa4b, - 0x3a028b, - 0x3a11ca, - 0x3a144b, - 0x3a1a4c, - 0x3a2348, - 0x3a4d8b, - 0x3a7acb, - 0x3ab30e, - 0x3ac80b, - 0x3ae6cb, - 0x3b92cb, - 0x3b9589, - 0x3b9acd, - 0x3c81ca, - 0x3cb2d7, - 0x3cc698, - 0x3d0449, - 0x3d19cb, - 0x3d20d4, - 0x3d25cb, - 0x3d2b4a, - 0x3d300a, - 0x3d328b, - 0x3d3ad0, - 0x3d3ed1, - 0x3d48ca, - 0x3d614d, - 0x3d684d, - 0x3d8b0b, - 0x21aa43, - 0x84f5b983, - 0x2f1986, - 0x241f45, - 0x28bf87, - 0x339186, - 0x1662202, - 0x31a589, - 0x331cc4, - 0x2ec8c8, - 0x21a5c3, - 0x302507, - 0x202542, - 0x2bb443, - 0x852074c2, - 0x2d5e06, - 0x2d7544, - 0x3485c4, - 0x390243, - 0x85ad2e42, - 0x85eb5e44, - 0x281e87, - 0x86228702, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0xf2248, - 0x21ba03, - 0x200742, - 0xb2b48, - 0x204502, - 0x215e43, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x203583, - 0x347a16, - 0x36a713, - 0x3af3c9, - 0x37c588, - 0x38afc9, - 0x31c746, - 0x359290, - 0x246453, - 0x312ac8, - 0x286207, - 0x2894c7, - 0x2addca, - 0x32ce49, - 0x3a24c9, - 0x2480cb, - 0x27e586, - 0x294a4a, - 0x21db86, - 0x3318c3, - 0x2e4385, - 0x35bfc8, - 0x26064d, - 0x33bfcc, - 0x306d47, - 0x327bcd, - 0x273304, - 0x23048a, - 0x230fca, - 0x23148a, - 0x20e6c7, - 0x23ed47, - 0x242504, - 0x293486, - 0x32de44, - 0x2dab08, - 0x2eeb89, - 0x339906, - 0x339908, - 0x2fe64d, - 0x2d4d09, - 0x3167c8, - 0x25d547, - 0x2394ca, - 0x253fc6, - 0x2618c7, - 0x2dbd84, - 0x29a187, - 0x215e4a, - 0x23f10e, - 0x229505, - 0x29a08b, - 0x307909, - 0x224d49, - 0x2b9d47, - 0x3b780a, - 0x39ed87, - 0x300a09, - 0x33d848, - 0x218b8b, - 0x2eb3c5, - 0x30cb8a, - 0x237ac9, - 0x27fe0a, - 0x2d7f0b, - 0x3b8a8b, - 0x247e55, - 0x303205, - 0x25d5c5, - 0x2ffc8a, - 0x27100a, - 0x209947, - 0x21e983, - 0x2c0fc8, - 0x2e228a, - 0x2200c6, - 0x26b549, - 0x298508, - 0x2ed6c4, - 0x388ac9, - 0x2cc6c8, - 0x2c7c87, - 0x2d9dc6, - 0x396607, - 0x329407, - 0x241605, - 0x22934c, - 0x2768c5, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x204502, - 0x22cc43, - 0x21c103, - 0x21ba03, - 0x201ac3, - 0x22cc43, - 0x21c103, - 0x1ba03, - 0x27d543, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0xb2b48, - 0x204502, - 0x202a02, - 0x312d42, - 0x202282, - 0x2009c2, - 0x2099c2, - 0x9e2c6, - 0x4820f83, - 0x94887, - 0x101, - 0x522cc43, - 0x232ec3, - 0x21fe83, - 0x215e43, - 0x213303, - 0x20e403, - 0x2e4286, - 0x21c103, - 0x201ac3, - 0x234443, - 0xb2b48, - 0x281744, - 0x209087, - 0x390283, - 0x320744, - 0x206803, - 0x293ac3, - 0x215e43, - 0x9a6c7, - 0x80cc4, - 0x6f4c3, - 0x80205, - 0x200742, - 0x4dd03, - 0x6604502, - 0x6898309, - 0x9898d, - 0x98ccd, - 0x312d42, - 0x1f504, - 0x80249, - 0x200342, - 0x6e1f408, - 0xff404, - 0xb2b48, - 0x1409802, - 0x1401582, - 0x1409802, - 0x151d2c6, - 0x22f003, - 0x2c3f43, - 0x762cc43, - 0x230484, - 0x7a32ec3, - 0x7e15e43, - 0x205142, - 0x21f504, - 0x21c103, - 0x30b7c3, - 0x2052c2, - 0x201ac3, - 0x216942, - 0x305ec3, - 0x208a82, - 0x26fb83, - 0x276043, - 0x2076c2, - 0xb2b48, - 0x22f003, - 0x30b7c3, - 0x2052c2, - 0x305ec3, - 0x208a82, - 0x26fb83, - 0x276043, - 0x2076c2, - 0x305ec3, - 0x208a82, - 0x26fb83, - 0x276043, - 0x2076c2, - 0x22cc43, - 0x24dd03, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x213303, - 0x20e403, - 0x221904, - 0x21c103, - 0x201ac3, - 0x200e42, - 0x214903, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x383305, - 0x25efc2, - 0x200742, - 0xb2b48, - 0x14975c8, - 0x16ac0a, - 0x215e43, - 0x200001, - 0x202701, - 0x202741, - 0x201f01, - 0x201e81, - 0x21db01, - 0x208141, - 0x20a2c1, - 0x203a41, - 0x203a81, - 0x200101, - 0x200301, - 0xfe4c5, - 0xb2b48, - 0x200781, - 0x200a81, - 0x200041, - 0x200141, - 0x200a01, - 0x200dc1, - 0x200541, - 0x2077c1, - 0x2026c1, - 0x200641, - 0x200081, - 0x2001c1, - 0x200341, - 0x200e41, - 0x20bc41, - 0x2002c1, - 0x200c01, - 0x200401, - 0x200441, - 0x202401, - 0x202881, - 0x209841, - 0x200cc1, - 0x201441, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x200342, - 0x201ac3, - 0x9a6c7, - 0xe507, - 0x28906, - 0x3adca, - 0x96308, - 0x59f88, - 0x5a847, - 0x86, - 0xea205, - 0x148e45, - 0xdc886, - 0x107146, - 0x2056c4, - 0x26ca47, - 0xb2b48, - 0x2e4e84, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x331648, - 0x2068c4, - 0x232e04, - 0x274a84, - 0x277c47, - 0x2e07c7, - 0x22cc43, - 0x23638b, - 0x33ef8a, - 0x27e847, - 0x23ffc8, - 0x38c288, - 0x232ec3, - 0x32d047, - 0x21fe83, - 0x3bf588, - 0x3c1d09, - 0x21f504, - 0x213303, - 0x23b788, - 0x20e403, - 0x2de24a, - 0x2e4286, - 0x3a5a07, - 0x21c103, - 0x21e886, - 0x31e888, - 0x201ac3, - 0x282586, - 0x2f620d, - 0x2f8788, - 0x30018b, - 0x27cec6, - 0x32f3c7, - 0x223b85, - 0x3be2ca, - 0x222ac5, - 0x24938a, - 0x25efc2, - 0x202903, - 0x241084, - 0x203a86, - 0x3b1283, - 0x2b2a43, - 0x250bc3, - 0x2068c3, - 0x207783, - 0x200582, - 0x319fc5, - 0x2b4589, - 0x241c83, - 0x229a43, - 0x204883, - 0x200301, - 0x2d9687, - 0x2d2505, - 0x3851c3, - 0x3bc883, - 0x274a84, - 0x27f043, - 0x213088, - 0x375183, - 0x30bd8d, - 0x256048, - 0x385446, - 0x334ec3, - 0x397303, - 0x3aca83, - 0xbe2cc43, - 0x232708, - 0x236384, - 0x2437c3, - 0x203b86, - 0x247648, - 0x2046c3, - 0x3be303, - 0x205b03, - 0x232ec3, - 0x2242c3, - 0x247f43, - 0x2b0183, - 0x334e43, - 0x226543, - 0x204b03, - 0x39eac5, - 0x255244, - 0x256747, - 0x233bc2, - 0x259a43, - 0x25cdc6, - 0x25e643, - 0x25eb83, - 0x2852c3, - 0x203903, - 0x204a83, - 0x2a3a47, - 0xc215e43, - 0x24f0c3, - 0x3c2683, - 0x219203, - 0x21cc83, - 0x257dc3, - 0x35ba45, - 0x377343, - 0x24c909, - 0x20d383, - 0x311103, - 0xc636983, - 0x3a2283, - 0x21f708, - 0x2b44c6, - 0x200706, - 0x2a9686, - 0x38a907, - 0x21c2c3, - 0x228c03, - 0x20e403, - 0x296406, - 0x2055c2, - 0x2ba883, - 0x35ce85, - 0x21c103, - 0x25fa07, - 0x161ba03, - 0x244e03, - 0x20e743, - 0x20b083, - 0x22c403, - 0x201ac3, - 0x20c746, - 0x27ed86, - 0x37d9c3, - 0x22b7c3, - 0x214903, - 0x25e483, - 0x3b88c3, - 0x303c83, - 0x306283, - 0x20b745, - 0x202ac3, - 0x26a006, - 0x32e048, - 0x21e143, - 0x377e49, - 0x2b9308, - 0x225608, - 0x26aac5, - 0x23b34a, - 0x23d0ca, - 0x23f74b, - 0x23fb88, - 0x306a43, - 0x3923c3, - 0x342083, - 0x32b288, - 0x381a43, - 0x2fe944, - 0x262343, - 0x204243, - 0x238d03, - 0x257f43, - 0x234443, - 0x25efc2, - 0x227ec3, - 0x239803, - 0x318583, - 0x319544, - 0x241084, - 0x212f43, - 0xb2b48, - 0x200742, - 0x200602, - 0x200582, - 0x203642, - 0x203c82, - 0x200782, - 0x216f82, - 0x201d42, - 0x201382, - 0x2000c2, - 0x218ec2, - 0x202c42, - 0x2728c2, - 0x208702, - 0x2099c2, - 0x2036c2, - 0x20c982, - 0x213282, - 0x21c4c2, - 0x202f82, - 0x204102, - 0x215242, - 0x204c42, - 0x203582, - 0x200c02, - 0x23c5c2, - 0x2048c2, - 0x742, - 0x602, - 0x582, - 0x3642, - 0x3c82, - 0x782, - 0x16f82, - 0x1d42, - 0x1382, - 0xc2, - 0x18ec2, - 0x2c42, - 0x728c2, - 0x8702, - 0x99c2, - 0x36c2, - 0xc982, - 0x13282, - 0x1c4c2, - 0x2f82, - 0x4102, - 0x15242, - 0x4c42, - 0x3582, - 0xc02, - 0x3c5c2, - 0x48c2, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x2902, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x4502, - 0x204502, - 0x201ac3, - 0xde2cc43, - 0x215e43, - 0x20e403, - 0x75003, - 0x22e8c2, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x75003, - 0x201ac3, - 0x74c2, - 0x200942, - 0x15b2885, - 0x201c82, - 0xb2b48, - 0x4502, - 0x235382, - 0x200482, - 0x206cc2, - 0x20e342, - 0x24ffc2, - 0x148e45, - 0x203542, - 0x2052c2, - 0x209342, - 0x204902, - 0x2036c2, - 0x3a1b42, - 0x211202, - 0x227782, - 0x9a6c7, - 0xf54cd, - 0xea289, - 0xcb20b, - 0xed808, - 0x77289, - 0x111b86, - 0x215e43, - 0xb2b48, - 0x80cc4, - 0x6f4c3, - 0x80205, - 0xb2b48, - 0xe6fc7, - 0x5b346, - 0x80249, - 0x16c4e, - 0x1c2d87, - 0x200742, - 0x2056c4, - 0x204502, - 0x22cc43, - 0x202a02, - 0x232ec3, - 0x201382, - 0x2e4e84, - 0x213303, - 0x251402, - 0x21c103, - 0x200342, - 0x201ac3, - 0x25d5c6, - 0x338e4f, - 0x602883, - 0xb2b48, - 0x204502, - 0x21fe83, - 0x215e43, - 0x20e403, - 0x1ba03, - 0x16c48, - 0x15be08b, - 0x152e7ca, - 0x1477107, - 0xade8b, - 0x10eb85, - 0xfe4c5, - 0x9a6c7, - 0x204502, - 0x22cc43, - 0x215e43, - 0x21c103, - 0x200742, - 0x206d42, - 0x3447c2, - 0x1162cc43, - 0x2401c2, - 0x232ec3, - 0x20d342, - 0x209542, - 0x215e43, - 0x24cc42, - 0x276b82, - 0x2b5e02, - 0x203602, - 0x29e002, - 0x204282, - 0x200dc2, - 0x25fec2, - 0x2882c2, - 0x206d82, - 0x5904c, - 0x2bd542, - 0x2f6782, - 0x21cfc2, - 0x24d382, - 0x20e403, - 0x208302, - 0x21c103, - 0x215f82, - 0x2dd302, - 0x201ac3, - 0x241d02, - 0x203582, - 0x2085c2, - 0x2062c2, - 0x20d202, - 0x2ef5c2, - 0x216082, - 0x25d882, - 0x21d6c2, - 0x32740a, - 0x36d2ca, - 0x39ca0a, - 0x3d9582, - 0x201e02, - 0x35ba02, - 0x11b34009, - 0x11fc8eca, - 0x142e2c7, - 0x12202942, - 0x140a803, - 0x7e02, - 0x1c8eca, - 0x192ace, - 0x24fc04, - 0x12a2cc43, - 0x232ec3, - 0x251344, - 0x1b8786, - 0x215e43, - 0x21f504, - 0x213303, - 0x148109, - 0x2f306, - 0x20e403, - 0xee044, - 0x1e43, - 0x21c103, - 0x24a85, - 0x21ba03, - 0x201ac3, - 0x1507504, - 0x202ac3, - 0x202903, - 0xb2b48, - 0x27c6, - 0x1400004, - 0x190045, - 0x1c2b4a, - 0x1310c2, - 0x1c6846, - 0x1c38d1, - 0x13334009, - 0x1900c8, - 0x50688, - 0x10a847, - 0x282, - 0xfe4cb, - 0x18b40b, - 0x17c00a, - 0x9498a, - 0x163b47, - 0xb2b48, - 0x11fa48, - 0x1d1c47, - 0x19c14e0b, - 0x17c07, - 0x4c2, - 0x2b347, - 0x15458a, - 0xe58f, - 0x42a0f, - 0x192ac2, - 0x4502, - 0xb00c8, - 0xf02ca, - 0xe6aca, - 0x8c84a, - 0x55e48, - 0xc448, - 0x5f2c8, - 0xe6f88, - 0x7a48, - 0x46c2, - 0x1b290f, - 0xac44b, - 0x97fc8, - 0x35687, - 0x886ca, - 0x1c96cb, - 0x4ba49, - 0x885c7, - 0xc348, - 0x3d28c, - 0x13e0c7, - 0x6860a, - 0x5c248, - 0x2890e, - 0x290ce, - 0x16398b, - 0x37fcb, - 0x6a78b, - 0x73809, - 0x73e4b, - 0x1cf84d, - 0x11b00b, - 0x104a8d, - 0x104e0d, - 0x106f8a, - 0x40ecb, - 0x4794b, - 0x4c145, - 0x1a021050, - 0xbccf, - 0x13d1cf, - 0x7988d, - 0x86c90, - 0x10ac2, - 0x1a7635c8, - 0xe388, - 0x96f10, - 0x1621ce, - 0x1ab75145, - 0x5048b, - 0x147210, - 0x58d48, - 0xc54a, - 0x38189, - 0x66f47, - 0x67287, - 0x67447, - 0x677c7, - 0x69087, - 0x69687, - 0x6ad07, - 0x6b247, - 0x6b8c7, - 0x6bbc7, - 0x6c287, - 0x6c447, - 0x6c607, - 0x6c7c7, - 0x703c7, - 0x70787, - 0x71287, - 0x71647, - 0x71c87, - 0x71f47, - 0x72107, - 0x72407, - 0x72787, - 0x72987, - 0x743c7, - 0x74587, - 0x74747, - 0x75387, - 0x75887, - 0x76487, - 0x77687, - 0x78147, - 0x7a087, - 0x7a247, - 0x7a647, - 0x7ab47, - 0x7b047, - 0x7b5c7, - 0x7b787, - 0x7b947, - 0x81c87, - 0x82707, - 0x82c47, - 0x83207, - 0x833c7, - 0x83747, - 0x83d47, - 0x1282, - 0x5f3ca, - 0xee187, - 0x6e745, - 0xa7d51, - 0xa946, - 0xfa00a, - 0xaff4a, - 0x5b346, - 0x1b6ecb, - 0x40c2, - 0x2fad1, - 0x198f89, - 0xa2e49, - 0x5fec2, - 0xad5ca, - 0xb3a89, - 0xb41cf, - 0xb47ce, - 0xb5508, - 0x58e82, - 0x549, - 0x1a730e, - 0x14b7cc, - 0xf074f, - 0x1b19ce, - 0x79d8c, - 0x3a3c9, - 0x3d691, - 0x3dc48, - 0x448d2, - 0x4908d, - 0x19f14d, - 0x4f4cb, - 0x50855, - 0x7acc9, - 0x8e50a, - 0x92249, - 0x184690, - 0x1d460b, - 0x9ff8f, - 0xa074b, - 0xacf8c, - 0xb0390, - 0xb758a, - 0xba74d, - 0xbae4e, - 0xcaeca, - 0xcf4cc, - 0x1290d4, - 0x198c11, - 0x1c9e0b, - 0xc0b4f, - 0xc254d, - 0xc2dce, - 0xc7b4c, - 0xc808c, - 0xcabcb, - 0xccd8e, - 0xcd590, - 0xce10b, - 0xceb0d, - 0x157b8f, - 0x120d0c, - 0x13978e, - 0xd6e51, - 0xda88c, - 0xe7a07, - 0xe880d, - 0xed08c, - 0xfc910, - 0x108f8d, - 0x109e47, - 0x1662d0, - 0x175848, - 0x1930cb, - 0xbbf0f, - 0x43448, - 0xfa20d, - 0x10e2d0, - 0x1af7c9, - 0x1aebe246, - 0xbf143, - 0xc3385, - 0x53a82, - 0x88b49, - 0x5c04a, - 0x1b2f72c4, - 0x119586, - 0x1a4ca, - 0x10548d, - 0x1b53fa89, - 0x21983, - 0xf2f8a, - 0xe5111, - 0xe5549, - 0xe6a47, - 0xe7748, - 0xe7bc7, - 0xee248, - 0x1b2a0b, - 0x133489, - 0xef890, - 0xefd4c, - 0xf0c08, - 0xf0fc5, - 0xf108, - 0x1ba90a, - 0x21a47, - 0x6ce47, - 0x2fc2, - 0x147f0a, - 0x871c9, - 0x7aa05, - 0x5f88a, - 0x9a44f, - 0x1301cb, - 0x15bb0c, - 0x148212, - 0xdc9c5, - 0xf25c8, - 0x5554a, - 0x1bafdbc5, - 0x15b70c, - 0x144603, - 0x1a1b42, - 0x10640a, - 0x150678c, - 0x13e448, - 0x104c48, - 0x140007, - 0x1202, - 0x8a82, - 0x54150, - 0x78687, - 0x2edcf, - 0xdc886, - 0x8a84e, - 0x16de4b, - 0x4ed08, - 0x4be09, - 0x5a12, - 0x11668d, - 0x116bc8, - 0xcb0c9, - 0xdfdcd, - 0x1c4e09, - 0x19b60b, - 0x1c1048, - 0x89cc8, - 0x8ab88, - 0x8cd49, - 0x8cf4a, - 0x92f8c, - 0xfff0a, - 0x1b8907, - 0x3c5cd, - 0x1bec30c6, - 0x10820b, - 0x131acc, - 0x110388, - 0x49e89, - 0x1c6a50, - 0x73c2, - 0x8c0cd, - 0x1882, - 0x21c82, - 0x1b884a, - 0xf9f0a, - 0x10240b, - 0x47b0c, - 0x11f24c, - 0x11f54a, - 0x11f7ce, - 0x1ab8d, - 0x1c1d9445, - 0x59788, - 0x74c2, - 0x13609ece, - 0x13e7004e, - 0x14607eca, - 0x14f8fd0e, - 0x1560fe4e, - 0x15f7848c, - 0x142e2c7, - 0x142e2c9, - 0x140a803, - 0x1678d08c, - 0x16e10ac9, - 0x17626fc9, - 0x17e4a449, - 0x7e02, - 0x9e11, - 0x6ff91, - 0x7e0d, - 0x18fc51, - 0x6f0d1, - 0x1783cf, - 0x18cfcf, - 0x14d54c, - 0x26f0c, - 0x4a38c, - 0xe1ecd, - 0xfecd5, - 0x152b0c, - 0x15c68c, - 0x170110, - 0x1ad98c, - 0x1d1dcc, - 0x1d7899, - 0x1d8e19, - 0xfb99, - 0x10814, - 0x118d4, - 0x15554, - 0x16414, - 0x171d4, - 0x18611b89, - 0x18c15809, - 0x1975c749, - 0x13a3de49, - 0x7e02, - 0x1423de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x14a3de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x1523de49, - 0x7e02, - 0x15a3de49, - 0x7e02, - 0x1623de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x16a3de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x1723de49, - 0x7e02, - 0x17a3de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x1823de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x18a3de49, - 0x7e02, - 0x1923de49, - 0x7e02, - 0x19a3de49, - 0x7e02, - 0xfb8a, - 0x7e02, - 0x1c38c5, - 0x17c004, - 0x9ece, - 0x7004e, - 0x12bc4e, - 0x7eca, - 0x18fd0e, - 0xfe4e, - 0x17848c, - 0x18d08c, - 0x10ac9, - 0x26fc9, - 0x4a449, - 0x11b89, - 0x15809, - 0x15c749, - 0xfeecd, - 0x166c9, - 0x17489, - 0x12fb44, - 0x1349c4, - 0x1c2a84, - 0x59944, - 0xae144, - 0x36b84, - 0x3ab04, - 0x59cc4, - 0x10a844, - 0x15a16c3, - 0x3643, - 0x10ac2, - 0x1ab83, - 0x9d003, - 0x1513c2, - 0x1cbb48, - 0x133507, - 0x46c2, - 0x200742, - 0x204502, - 0x202a02, - 0x21cd02, - 0x201382, - 0x200342, - 0x208a82, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21cc83, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x21c103, - 0x201ac3, - 0xb343, - 0x215e43, - 0x1f504, - 0x200742, - 0x24dd03, - 0x1e62cc43, - 0x211747, - 0x215e43, - 0x223643, - 0x221904, - 0x21c103, - 0x201ac3, - 0x21a70a, - 0x25d5c5, - 0x214903, - 0x202b82, - 0xb2b48, - 0xb2b48, - 0x4502, - 0x1424c2, - 0x1ef3f80b, - 0x1f22cd04, - 0xf7205, - 0xe585, - 0x1d6e86, - 0x1f60e585, - 0x58383, - 0x166a43, - 0x80cc4, - 0x6f4c3, - 0x80205, - 0xfe4c5, - 0xb2b48, - 0x17c07, - 0x2cc43, - 0x1fe3ac07, - 0x6186, - 0x20007d05, - 0x6247, - 0xcd4a, - 0x1a96c8, - 0xcc47, - 0x6aeca, - 0x169988, - 0x33407, - 0x9a8f, - 0x4b347, - 0x59ac6, - 0x147210, - 0x1450cf, - 0xf989, - 0x119604, - 0x2040630e, - 0x39cc9, - 0x6c906, - 0x10d789, - 0x1922c6, - 0x137e46, - 0xee70c, - 0x1c98ca, - 0x4bbc7, - 0x18ee0a, - 0x7fc09, - 0x8684c, - 0x1bf8a, - 0x4caca, - 0x80249, - 0x119586, - 0x4bc8a, - 0x1177ca, - 0xa5c4a, - 0x15b1c9, - 0xe4a48, - 0xe4cc6, - 0xea80d, - 0xc3a05, - 0x20b5f60c, - 0x1c2d87, - 0x10b3c9, - 0x25487, - 0xbdd54, - 0x10e6cb, - 0x97e0a, - 0x588a, - 0xb080d, - 0x1502609, - 0x11644c, - 0x1169cb, - 0x9583, - 0x9583, - 0x28906, - 0x9583, - 0x1d6e88, - 0x1c7e03, - 0x121189, - 0x4dd03, - 0xb2b48, - 0x4502, - 0x51344, - 0xc0303, - 0x183305, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x229a43, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x2a3003, - 0x202903, - 0x229a43, - 0x2056c4, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x231303, - 0x229b2c85, - 0x142aa43, - 0x22cc43, - 0x232ec3, - 0x21cd03, - 0x21fe83, - 0x215e43, - 0x21f504, - 0x2026c3, - 0x228c03, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x214903, - 0x4502, - 0x26d2c3, - 0x23a2cc43, - 0x232ec3, - 0x24c043, - 0x215e43, - 0x225883, - 0x228c03, - 0x201ac3, - 0x213283, - 0x351dc4, - 0xb2b48, - 0x2422cc43, - 0x232ec3, - 0x2b55c3, - 0x215e43, - 0x20e403, - 0x221904, - 0x21c103, - 0x201ac3, - 0x21ea03, - 0xb2b48, - 0x24a2cc43, - 0x232ec3, - 0x21fe83, - 0x21ba03, - 0x201ac3, - 0xb2b48, - 0x142e2c7, - 0x24dd03, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x221904, - 0x21c103, - 0x201ac3, - 0xfe4c5, - 0x9a6c7, - 0xbdf8b, - 0xe5944, - 0xc3a05, - 0x14975c8, - 0xb5c0d, - 0x25f075c5, - 0xa7ec4, - 0x4502, - 0x8783, - 0x1af6c5, - 0x27e745, - 0xb2b48, - 0x7842, - 0x1a103, - 0x4502, - 0x102e86, - 0x3321c8, - 0x397187, - 0x2056c4, - 0x33f1c6, - 0x34d406, - 0xb2b48, - 0x326843, - 0x33cbc9, - 0x326995, - 0x12699f, - 0x22cc43, - 0x2e1a92, - 0x181e46, - 0x183ec5, - 0xc54a, - 0x38189, - 0x2e184f, - 0x2e4e84, - 0x218f05, - 0x310ed0, - 0x37c787, - 0x21ba03, - 0x244e08, - 0x16ab46, - 0x29d84a, - 0x202e44, - 0x2fd603, - 0x25d5c6, - 0x202b82, - 0x2f6fcb, - 0x1ba03, - 0x19fcc4, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x3040c3, - 0x204502, - 0xeed43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x223643, - 0x237ac3, - 0x201ac3, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x200742, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0xe585, - 0x2056c4, - 0x22cc43, - 0x232ec3, - 0x21af04, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x75003, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x219203, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x32cdc4, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x202903, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x75003, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x33c583, - 0x6b0c3, - 0x23643, - 0x21c103, - 0x201ac3, - 0x32740a, - 0x34e989, - 0x36604b, - 0x366b4a, - 0x36d2ca, - 0x37b54b, - 0x39208a, - 0x39788a, - 0x39ca0a, - 0x39cc8b, - 0x3ba649, - 0x3c4aca, - 0x3c604b, - 0x3d288b, - 0x3d848a, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0xeb4b, - 0x602c8, - 0xdff04, - 0x1b2b46, - 0x107249, - 0xb2b48, - 0x22cc43, - 0x266f44, - 0x2089c2, - 0x221904, - 0x280745, - 0x229a43, - 0x2056c4, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x251344, - 0x2e4e84, - 0x21f504, - 0x228c03, - 0x21c103, - 0x201ac3, - 0x28c285, - 0x231303, - 0x214903, - 0x27be03, - 0x2769c4, - 0x202744, - 0x321445, - 0xb2b48, - 0x2087c4, - 0x337fc6, - 0x280384, - 0x204502, - 0x24ac07, - 0x253b87, - 0x24f1c4, - 0x25df45, - 0x309185, - 0x22e005, - 0x21f504, - 0x38a9c8, - 0x235bc6, - 0x325908, - 0x288305, - 0x2eb3c5, - 0x315dc4, - 0x201ac3, - 0x2ff404, - 0x37a386, - 0x25d6c3, - 0x2769c4, - 0x249485, - 0x288ac4, - 0x23c404, - 0x202b82, - 0x22ae86, - 0x3af0c6, - 0x314505, - 0x200742, - 0x24dd03, - 0x2d604502, - 0x363744, - 0x201382, - 0x20e403, - 0x29f502, - 0x21c103, - 0x200342, - 0x2fab86, - 0x203583, - 0x202903, - 0xb5e44, - 0xb2b48, - 0xb2b48, - 0x215e43, - 0x75003, - 0x200742, - 0x2e204502, - 0x215e43, - 0x26c583, - 0x2026c3, - 0x22cd04, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x200742, - 0x2ea04502, - 0x22cc43, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x4102, - 0x202d02, - 0x25efc2, - 0x223643, - 0x2f5d43, - 0x200742, - 0xfe4c5, - 0xb2b48, - 0x9a6c7, - 0x204502, - 0x232ec3, - 0x251344, - 0x212503, - 0x215e43, - 0x219203, - 0x20e403, - 0x21c103, - 0x201bc3, - 0x201ac3, - 0x21e983, - 0x7bd53, - 0xe13d4, - 0xfe4c5, - 0x9a6c7, - 0x10bcc6, - 0x112fcb, - 0x28906, - 0x59dc7, - 0x5df46, - 0x40c9, - 0xdd90a, - 0x961cd, - 0xf51cc, - 0x11814a, - 0x15fc08, - 0x148e45, - 0xcd88, - 0xdc886, - 0x76606, - 0x107146, - 0x210ac2, - 0x3984, - 0x9d006, - 0xe890, - 0x8ecce, - 0x7d6cc, - 0xfe4c5, - 0x17c1c7, - 0x1ff11, - 0x10a6ca, - 0x22cc43, - 0x6ae45, - 0x1b8dc8, - 0x16284, - 0x2fc26846, - 0xa7d46, - 0xd6206, - 0x9e2ca, - 0x185203, - 0x30246404, - 0x4085, - 0x106f03, - 0x30634607, - 0x24a85, - 0x1b6f8c, - 0x1019c8, - 0x2b48b, - 0x75e8b, - 0x30a4c5cc, - 0x141dac3, - 0xc4a48, - 0x2b705, - 0xac2c9, - 0x102708, - 0x141a406, - 0x94887, - 0x30f89249, - 0x126047, - 0x10eb8a, - 0xa388, - 0x1d6e88, - 0x10a844, - 0x153705, - 0x75fc7, - 0x31275fc3, - 0x3167dc86, - 0x31affc84, - 0x31f065c7, - 0x1d6e84, - 0x1d6e84, - 0x1d6e84, - 0x1d6e84, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x200742, - 0x204502, - 0x215e43, - 0x205142, - 0x21c103, - 0x201ac3, - 0x203583, - 0x38288f, - 0x382c4e, - 0xb2b48, - 0x22cc43, - 0x47487, - 0x232ec3, - 0x215e43, - 0x213303, - 0x21c103, - 0x201ac3, - 0x8104, - 0x6f604, - 0x817c4, - 0x208b43, - 0x208b47, - 0x204e82, - 0x2f3ec9, - 0x200602, - 0x25444b, - 0x2b2f4a, - 0x27c5c9, - 0x200182, - 0x377f86, - 0x22d355, - 0x254595, - 0x2320d3, - 0x254b13, - 0x206fc2, - 0x206fc5, - 0x206fcc, - 0x28298b, - 0x2bd205, - 0x203642, - 0x306242, - 0x3951c6, - 0x200282, - 0x262586, - 0x20c7cd, - 0x239f4c, - 0x2210c4, - 0x201782, - 0x206e02, - 0x244c88, - 0x203c82, - 0x225986, - 0x22598f, - 0x32b410, - 0x33ac84, - 0x22d515, - 0x232253, - 0x205683, - 0x33368a, - 0x21e747, - 0x351709, - 0x2edd47, - 0x329902, - 0x200882, - 0x39cf06, - 0x26f782, - 0xb2b48, - 0x206ac2, - 0x200302, - 0x20ad87, - 0x27c3c7, - 0x27c3d1, - 0x216905, - 0x21690e, - 0x2176cf, - 0x2004c2, - 0x21e947, - 0x219e48, - 0x2064c2, - 0x21c002, - 0x2a1046, - 0x32f5cf, - 0x2a1050, - 0x22a242, - 0x205382, - 0x32dec8, - 0x208e43, - 0x2c0488, - 0x2f12cd, - 0x205543, - 0x287608, - 0x2517cf, - 0x251b8e, - 0x20554a, - 0x3c55d1, - 0x3c5a50, - 0x2c60cd, - 0x2c640c, - 0x26d147, - 0x333807, - 0x33f289, - 0x201c42, - 0x200782, - 0x25bb0c, - 0x25be0b, - 0x200d82, - 0x2cad86, - 0x201542, - 0x203f02, - 0x392ac2, - 0x204502, - 0x22da44, - 0x23a787, - 0x233782, - 0x241747, - 0x244087, - 0x22b6c2, - 0x202b42, - 0x247345, - 0x201482, - 0x2d9b0e, - 0x39638d, - 0x232ec3, - 0x3ce90e, - 0x2ca64d, - 0x32f343, - 0x203502, - 0x291f44, - 0x234842, - 0x204742, - 0x3a0985, - 0x3a44c7, - 0x24b502, - 0x21cd02, - 0x250f47, - 0x255b08, - 0x233bc2, - 0x2dca46, - 0x25b98c, - 0x25bccb, - 0x20c542, - 0x26374f, - 0x263b10, - 0x263f0f, - 0x2642d5, - 0x264814, - 0x264d0e, - 0x26508e, - 0x26540f, - 0x2657ce, - 0x265b54, - 0x266053, - 0x26650d, - 0x283f09, - 0x299003, - 0x200b42, - 0x218645, - 0x3bee86, - 0x201382, - 0x303ac7, - 0x215e43, - 0x2040c2, - 0x2316c8, - 0x3c5811, - 0x3c5c50, - 0x2082c2, - 0x277f87, - 0x200bc2, - 0x20f407, - 0x253a82, - 0x2cbe49, - 0x395187, - 0x29e808, - 0x226686, - 0x2f5c43, - 0x338245, - 0x233142, - 0x203f42, - 0x39d305, - 0x27d445, - 0x206742, - 0x206743, - 0x206747, - 0x217a47, - 0x208d42, - 0x288fc4, - 0x21c843, - 0x325a89, - 0x312e48, - 0x208242, - 0x20d642, - 0x3612c7, - 0x389985, - 0x201648, - 0x3243c7, - 0x202603, - 0x29ce86, - 0x2c5f4d, - 0x2c62cc, - 0x2daf86, - 0x200482, - 0x275d42, - 0x202bc2, - 0x25164f, - 0x251a4e, - 0x309207, - 0x205102, - 0x365345, - 0x365346, - 0x21c0c2, - 0x208302, - 0x29b986, - 0x20f343, - 0x20f346, - 0x2d5385, - 0x2d538d, - 0x2d5955, - 0x2d640c, - 0x2d728d, - 0x2d7652, - 0x202c42, - 0x2728c2, - 0x2032c2, - 0x21f886, - 0x34b686, - 0x202fc2, - 0x3bef06, - 0x209342, - 0x3ccfc5, - 0x2009c2, - 0x2d9c49, - 0x22410c, - 0x22444b, - 0x200342, - 0x256b48, - 0x213642, - 0x208702, - 0x27a386, - 0x23ddc5, - 0x280d87, - 0x21c205, - 0x2854c5, - 0x247502, - 0x20ce42, - 0x2036c2, - 0x2f0a47, - 0x2fac4d, - 0x2fafcc, - 0x3ac247, - 0x22b802, - 0x20c982, - 0x235ec8, - 0x288cc8, - 0x2f0dc8, - 0x2fa1c4, - 0x2cd007, - 0x2f7343, - 0x224a42, - 0x202e42, - 0x2fb749, - 0x228d07, - 0x213282, - 0x27a785, - 0x2031c2, - 0x200e82, - 0x2c9683, - 0x2c9686, - 0x303c82, - 0x305e42, - 0x200902, - 0x3c7806, - 0x2f1647, - 0x206642, - 0x200382, - 0x3a770f, - 0x3ce74d, - 0x2c030e, - 0x2ca4cc, - 0x201b02, - 0x200502, - 0x2264c5, - 0x3251c6, - 0x204b82, - 0x202f82, - 0x204102, - 0x2ca7c4, - 0x2f1144, - 0x360746, - 0x208a82, - 0x289847, - 0x245603, - 0x245608, - 0x245b08, - 0x39efc7, - 0x257646, - 0x20fd02, - 0x227b83, - 0x227b87, - 0x3747c6, - 0x303345, - 0x2fa548, - 0x204f42, - 0x377d47, - 0x23c5c2, - 0x27dd02, - 0x205702, - 0x217849, - 0x22ce82, - 0x2017c2, - 0x254f43, - 0x2808c7, - 0x202582, - 0x22428c, - 0x22458b, - 0x2db006, - 0x306e45, - 0x209702, - 0x2048c2, - 0x2c70c6, - 0x2698c3, - 0x32cb47, - 0x27ed42, - 0x204342, - 0x22d1d5, - 0x254755, - 0x231f93, - 0x254c93, - 0x391a07, - 0x258411, - 0x261a50, - 0x269212, - 0x282dd1, - 0x284ec8, - 0x284ed0, - 0x2a814f, - 0x2b2d13, - 0x2b7952, - 0x2d0450, - 0x39334f, - 0x3b9ed2, - 0x2be391, - 0x3d54d3, - 0x2d4f12, - 0x2deb0f, - 0x2e0d4e, - 0x2e24d2, - 0x2e3a51, - 0x2e738f, - 0x2e92ce, - 0x301b91, - 0x304150, - 0x3122d2, - 0x37f211, - 0x307b10, - 0x308a8f, - 0x37ded1, - 0x3d07d0, - 0x349f86, - 0x350b07, - 0x219347, - 0x200f82, - 0x28fa85, - 0x310c47, - 0x25efc2, - 0x207802, - 0x227ec5, - 0x200443, - 0x200446, - 0x2fae0d, - 0x2fb14c, - 0x206e42, - 0x206e4b, - 0x28284a, - 0x21d78a, - 0x2c5849, - 0x2f90cb, - 0x32450d, - 0x31134c, - 0x276f4a, - 0x2838cc, - 0x2a32cb, - 0x2bd04c, - 0x330a4e, - 0x2e628b, - 0x31094c, - 0x381ac3, - 0x3c4d06, - 0x3bc842, - 0x306c02, - 0x2110c3, - 0x202402, - 0x234383, - 0x31be46, - 0x264487, - 0x2eafc6, - 0x2f0488, - 0x2065c8, - 0x33b286, - 0x208f02, - 0x313ecd, - 0x31420c, - 0x2e4f47, - 0x317f87, - 0x235602, - 0x214b02, - 0x227b02, - 0x287b02, - 0x341216, - 0x346615, - 0x34a716, - 0x34d853, - 0x34df12, - 0x35e3d3, - 0x35e992, - 0x3adfcf, - 0x3bb818, - 0x3bc317, - 0x3bc959, - 0x3be558, - 0x3bff98, - 0x3c07d7, - 0x3c1f57, - 0x3c2f56, - 0x3c8a13, - 0x3c9155, - 0x3ca0d2, - 0x3ca553, - 0x204502, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x221904, - 0x21c103, - 0x201ac3, - 0x203583, - 0x200742, - 0x200a42, - 0x33ea04c5, - 0x34291505, - 0x347c74c6, - 0xb2b48, - 0x34abe985, - 0x204502, - 0x202a02, - 0x34e6e845, - 0x3528e405, - 0x3568f207, - 0x35a8ff09, - 0x35f62d04, - 0x201382, - 0x2040c2, - 0x3624e745, - 0x366a4489, - 0x36b40808, - 0x36ebacc5, - 0x37358587, - 0x376139c8, - 0x37af2485, - 0x37e373c6, - 0x38389489, - 0x386c3cc8, - 0x38acd3c8, - 0x38ea1eca, - 0x39284744, - 0x397bf8c5, - 0x39ac8f48, - 0x39e888c5, - 0x212f82, - 0x3a233d03, - 0x3a6af8c6, - 0x3ab49688, - 0x3af3bc46, - 0x3b373b48, - 0x3b74d2c6, - 0x3bb8e644, - 0x2015c2, - 0x3bf282c7, - 0x3c2b67c4, - 0x3c688007, - 0x3cb2e207, - 0x200342, - 0x3cea9ac5, - 0x3d24a884, - 0x3d6e84c7, - 0x3da412c7, - 0x3de91d86, - 0x3e28ea45, - 0x3e6a4587, - 0x3eaea488, - 0x3ef2e587, - 0x3f2fcdc9, - 0x3f6d6745, - 0x3facf347, - 0x3fe9f6c6, - 0x403bdf08, - 0x222c0d, - 0x28b889, - 0x2b3c8b, - 0x2b56cb, - 0x30af0b, - 0x31860b, - 0x3253cb, - 0x32568b, - 0x326209, - 0x32768b, - 0x32794b, - 0x328d4b, - 0x329c8a, - 0x32a1ca, - 0x32a7cc, - 0x33048b, - 0x330eca, - 0x34bf8a, - 0x353f4e, - 0x354fce, - 0x35534a, - 0x3573ca, - 0x358d0b, - 0x358fcb, - 0x359d8b, - 0x3713cb, - 0x3719ca, - 0x37268b, - 0x37294a, - 0x372bca, - 0x372e4a, - 0x392e4b, - 0x39888b, - 0x39ac0e, - 0x39af8b, - 0x3a0f0b, - 0x3a1ecb, - 0x3a504a, - 0x3a52c9, - 0x3a550a, - 0x3a6e0a, - 0x3bb20b, - 0x3c630b, - 0x3c6e4a, - 0x3c844b, - 0x3cfecb, - 0x3d7ecb, - 0x406905c8, - 0x40a95949, - 0x40eac149, - 0x412ec8c8, - 0x3604c5, - 0x200583, - 0x3a1784, - 0x3c2985, - 0x362a46, - 0x237145, - 0x294cc4, - 0x3039c8, - 0x31e405, - 0x2a1444, - 0x3366c7, - 0x2ab68a, - 0x24aeca, - 0x309307, - 0x221c07, - 0x2e7887, - 0x28b307, - 0x309745, - 0x3b6b86, - 0x2c79c7, - 0x3b91c4, - 0x234bc6, - 0x2f7b86, - 0x335985, - 0x26d6c4, - 0x2a4bc6, - 0x2aa947, - 0x26a406, - 0x327ec7, - 0x2a1003, - 0x3d0186, - 0x22cfc5, - 0x28f307, - 0x27094a, - 0x2317c4, - 0x20f708, - 0x2ed349, - 0x2e45c7, - 0x355bc6, - 0x38abc8, - 0x2189c9, - 0x31bf44, - 0x2553c4, - 0x29af45, - 0x2c76c8, - 0x2d3507, - 0x2cf089, - 0x305c48, - 0x34a086, - 0x307446, - 0x2a6688, - 0x375f46, - 0x291505, - 0x291e46, - 0x2891c8, - 0x251546, - 0x25ad0b, - 0x366906, - 0x2a850d, - 0x3b7745, - 0x2b6686, - 0x20d845, - 0x27cb89, - 0x367d47, - 0x3a8c48, - 0x29eb46, - 0x2a6f09, - 0x38ae86, - 0x2708c5, - 0x297a86, - 0x2a8f06, - 0x2d8889, - 0x2c3fc6, - 0x2ab387, - 0x2423c5, - 0x2009c3, - 0x23a205, - 0x2a87c7, - 0x26e046, - 0x3b7649, - 0x3c74c6, - 0x292086, - 0x212949, - 0x291849, - 0x2adc87, - 0x386708, - 0x2a7b89, - 0x28f708, - 0x34c1c6, - 0x2e4805, - 0x22b98a, - 0x292106, - 0x3bd846, - 0x2dcd85, - 0x2571c8, - 0x22f147, - 0x22f8ca, - 0x251f86, - 0x28bcc5, - 0x306106, - 0x2010c7, - 0x355a87, - 0x242f45, - 0x270a85, - 0x28df86, - 0x2b4b06, - 0x3ceec6, - 0x2c9404, - 0x290a49, - 0x2967c6, - 0x303e4a, - 0x22a048, - 0x341c88, - 0x24aeca, - 0x238e85, - 0x2aa885, - 0x2f1808, - 0x2bf648, - 0x22f547, - 0x357a46, - 0x344148, - 0x2cfa07, - 0x28eb88, - 0x2c2c86, - 0x292b48, - 0x2c67c6, - 0x288487, - 0x2b9206, - 0x2a4bc6, - 0x27938a, - 0x22dac6, - 0x2e4809, - 0x33b386, - 0x2ef0ca, - 0x38e649, - 0x244546, - 0x2c44c4, - 0x21870d, - 0x295bc7, - 0x33d5c6, - 0x2cd285, - 0x38af05, - 0x394846, - 0x2e8309, - 0x2c3607, - 0x28a1c6, - 0x2dbc06, - 0x294d49, - 0x291444, - 0x36f144, - 0x27f848, - 0x269c86, - 0x27a848, - 0x2fa8c8, - 0x2abac7, - 0x3a8049, - 0x3cf0c7, - 0x2be84a, - 0x2fc20f, - 0x389fca, - 0x2262c5, - 0x289405, - 0x3a8c05, - 0x33abc7, - 0x200c83, - 0x386908, - 0x31edc6, - 0x31eec9, - 0x2eb6c6, - 0x2da0c7, - 0x2a6cc9, - 0x3a8b48, - 0x2dce47, - 0x322203, - 0x360545, - 0x200c05, - 0x2c924b, - 0x288984, - 0x23fdc4, - 0x285c86, - 0x3223c7, - 0x39e04a, - 0x233d87, - 0x31bfc7, - 0x28e405, - 0x3b6885, - 0x267ec9, - 0x2a4bc6, - 0x233c0d, - 0x33c3c5, - 0x2bffc3, - 0x21bc83, - 0x3af305, - 0x364e85, - 0x38abc8, - 0x28afc7, - 0x36eec6, - 0x2abdc6, - 0x228345, - 0x233187, - 0x336047, - 0x235a87, - 0x3bf94a, - 0x3d0248, - 0x2c9404, - 0x28d487, - 0x28d1c7, - 0x364386, - 0x2a3687, - 0x2d2288, - 0x2ddac8, - 0x36e286, - 0x221e48, - 0x2c4044, - 0x2c79c6, - 0x23e046, - 0x207646, - 0x206b86, - 0x2a9e84, - 0x28b3c6, - 0x2cc086, - 0x2a6086, - 0x22fec6, - 0x337046, - 0x2d20c6, - 0x36edc8, - 0x3c9c48, - 0x2e0488, - 0x237348, - 0x2f1786, - 0x20f685, - 0x23a1c6, - 0x2bad45, - 0x396ec7, - 0x207605, - 0x210243, - 0x335b85, - 0x22c404, - 0x337185, - 0x240803, - 0x35a347, - 0x3395c8, - 0x327f86, - 0x2bf2cd, - 0x2893c6, - 0x2a5445, - 0x213d83, - 0x2c8909, - 0x2915c6, - 0x29f946, - 0x2ad544, - 0x389f47, - 0x33df46, - 0x30d205, - 0x2050c3, - 0x3c0f04, - 0x28d386, - 0x23e144, - 0x317348, - 0x3b4a89, - 0x23eb09, - 0x2ad34a, - 0x2ae84d, - 0x231b47, - 0x337d06, - 0x20ce84, - 0x28ff09, - 0x2942c8, - 0x2957c6, - 0x23b0c6, - 0x2a3687, - 0x2d5f86, - 0x21bbc6, - 0x32d486, - 0x32e28a, - 0x2139c8, - 0x279c85, - 0x25fb89, - 0x2d3c8a, - 0x3c7f08, - 0x2aa308, - 0x29f8c8, - 0x2aae0c, - 0x328fc5, - 0x2ac048, - 0x2f7e06, - 0x2227c6, - 0x397ac7, - 0x233c85, - 0x291fc5, - 0x23e9c9, - 0x3b7b47, - 0x31ee85, - 0x21fd47, - 0x21bc83, - 0x2d4145, - 0x31c3c8, - 0x295547, - 0x2aa1c9, - 0x2ed6c5, - 0x30f984, - 0x2ae508, - 0x328407, - 0x2dd008, - 0x28db08, - 0x2b7485, - 0x33af86, - 0x29b346, - 0x368089, - 0x325ec7, - 0x2bb206, - 0x363287, - 0x203703, - 0x362d04, - 0x2e2f45, - 0x28d704, - 0x24c884, - 0x291187, - 0x26bd07, - 0x268344, - 0x2aa010, - 0x26e9c7, - 0x3b6885, - 0x253ccc, - 0x211244, - 0x2bef48, - 0x288389, - 0x385d86, - 0x302848, - 0x217f04, - 0x285f88, - 0x328ac6, - 0x279208, - 0x2a5ac6, - 0x29650b, - 0x332945, - 0x2e2dc8, - 0x212384, - 0x3b4eca, - 0x2aa1c9, - 0x2b9106, - 0x3c5188, - 0x2b0285, - 0x2c41c4, - 0x2bee46, - 0x235948, - 0x2905c8, - 0x3449c6, - 0x32ee44, - 0x22b906, - 0x3cf147, - 0x287f07, - 0x2a368f, - 0x3bd307, - 0x244607, - 0x365205, - 0x370945, - 0x2ad949, - 0x2dc5c6, - 0x25fd45, - 0x291b47, - 0x3d50c8, - 0x23e1c5, - 0x2b9206, - 0x229e88, - 0x33bc4a, - 0x38bb08, - 0x29b707, - 0x2fc646, - 0x25fb46, - 0x203e43, - 0x213643, - 0x2d3e49, - 0x2a7a09, - 0x2bed46, - 0x2ed6c5, - 0x2ec148, - 0x3c5188, - 0x3760c8, - 0x32d50b, - 0x2bf507, - 0x31e6c9, - 0x2a3908, - 0x368a04, - 0x353208, - 0x29d409, - 0x2bb505, - 0x33aac7, - 0x362d85, - 0x2904c8, - 0x2a034b, - 0x2a42d0, - 0x2b5f45, - 0x2122cc, - 0x36f085, - 0x28e483, - 0x2cdb06, - 0x2ca444, - 0x24a986, - 0x2aa947, - 0x229f04, - 0x245e48, - 0x3867cd, - 0x357885, - 0x231b84, - 0x226004, - 0x2b1489, - 0x2b9748, - 0x332e07, - 0x328b48, - 0x290b08, - 0x28a4c5, - 0x20df87, - 0x28a447, - 0x33c987, - 0x270a89, - 0x32d1c9, - 0x25c3c6, - 0x2c6606, - 0x291c06, - 0x356d45, - 0x38ddc4, - 0x3b24c6, - 0x3b4846, - 0x28a508, - 0x200d8b, - 0x269807, - 0x20ce84, - 0x33de86, - 0x2d25c7, - 0x333b45, - 0x348805, - 0x22f404, - 0x32d146, - 0x3b2548, - 0x28ff09, - 0x249c06, - 0x2940c8, - 0x30d2c6, - 0x3672c8, - 0x2c1a4c, - 0x28a386, - 0x2a510d, - 0x2a558b, - 0x2ab445, - 0x336187, - 0x2c40c6, - 0x355948, - 0x25c449, - 0x36e548, - 0x3b6885, - 0x3b8f07, - 0x28f808, - 0x2ebac9, - 0x22b0c6, - 0x2612ca, - 0x3556c8, - 0x36e38b, - 0x2df70c, - 0x286088, - 0x28cb46, - 0x20d988, - 0x33b8c7, - 0x3bd449, - 0x2d6a8d, - 0x2a4ac6, - 0x2ec2c8, - 0x3c9b09, - 0x2c9508, - 0x292c48, - 0x2ccacc, - 0x2cdc87, - 0x2ce5c7, - 0x2708c5, - 0x2c2007, - 0x3d4f88, - 0x2beec6, - 0x249a8c, - 0x300e48, - 0x2db288, - 0x237606, - 0x2863c7, - 0x25c5c4, - 0x237348, - 0x23854c, - 0x26e2cc, - 0x226345, - 0x335a07, - 0x32edc6, - 0x286346, - 0x27cd48, - 0x21a0c4, - 0x26a40b, - 0x28998b, - 0x2fc646, - 0x386647, - 0x200845, - 0x278285, - 0x26a546, - 0x2b0245, - 0x288945, - 0x2d86c7, - 0x277a09, - 0x2b4cc4, - 0x25ebc5, - 0x3ac5c5, - 0x3170c8, - 0x299785, - 0x296c89, - 0x320787, - 0x32078b, - 0x2fb346, - 0x36eb09, - 0x26d608, - 0x29aa45, - 0x33ca88, - 0x32d208, - 0x262e07, - 0x3288c7, - 0x291209, - 0x279147, - 0x2a1b09, - 0x2e8ccc, + 0x3a7b46, + 0x3201842, + 0x2d02c7, + 0x236c86, + 0x3604b02, + 0x227483, + 0x280a84, + 0x2165c6, + 0x39fc48, + 0x289886, + 0x26f844, + 0x3a00b02, + 0x34a789, + 0x217307, + 0x200f46, + 0x274909, 0x2fccc8, - 0x2c3b09, - 0x2c4c07, - 0x290bc9, - 0x204f47, - 0x2df808, - 0x3a8205, - 0x2c7946, - 0x2cd2c8, - 0x3029c8, - 0x2d3b49, - 0x288987, - 0x278345, - 0x23c9c9, - 0x2d8f06, - 0x280a04, - 0x280a06, - 0x349508, - 0x3a1887, - 0x200f88, - 0x221f09, - 0x38c847, - 0x2ab846, - 0x336244, - 0x335c09, - 0x20de08, - 0x2374c7, - 0x310046, - 0x200cc6, - 0x3bd7c4, - 0x2f8046, - 0x23a903, - 0x3324c9, - 0x332906, - 0x3b6e05, - 0x2abdc6, - 0x2d8c45, - 0x28fc88, - 0x33b787, - 0x30c846, - 0x26e886, - 0x341c88, - 0x2adac7, - 0x2a4b05, - 0x2a9e08, - 0x3d4448, - 0x3556c8, - 0x36ef45, - 0x2c79c6, - 0x23e8c9, - 0x367f04, - 0x2d8acb, - 0x21b8cb, - 0x279b89, - 0x21bc83, - 0x25cb05, - 0x22e146, - 0x381f88, - 0x31b604, - 0x327f86, - 0x3bfa89, - 0x2db945, - 0x2d8606, - 0x328406, - 0x2220c4, - 0x2220ca, - 0x3b6d48, - 0x3029c6, - 0x2f4b05, - 0x38cb07, - 0x3650c7, - 0x33af84, - 0x21bb07, - 0x2075c4, - 0x2075c6, - 0x209b43, - 0x270a85, - 0x2bc1c5, - 0x373dc8, - 0x28d645, - 0x28a0c9, - 0x237187, - 0x23718b, - 0x2af6cc, - 0x2afcca, - 0x358587, - 0x204e03, - 0x256148, - 0x36f105, - 0x23e245, - 0x360604, - 0x2df706, - 0x288386, - 0x2f8087, - 0x23bf4b, - 0x2a9e84, - 0x31a144, - 0x2d2e84, - 0x2d83c6, - 0x229f04, - 0x2c77c8, - 0x360405, - 0x242dc5, - 0x376007, - 0x336289, - 0x364e85, - 0x39484a, - 0x2422c9, - 0x2b814a, - 0x32e3c9, - 0x35e884, - 0x2dbcc5, - 0x2d6088, - 0x2e858b, - 0x29af45, - 0x257846, - 0x20f084, - 0x28a606, - 0x38c6c9, - 0x2d26c7, - 0x3c7688, - 0x2aebc6, - 0x3cf0c7, - 0x2905c8, - 0x394dc6, - 0x3a8f84, - 0x382f87, - 0x384585, - 0x395f47, - 0x217e04, - 0x2c4046, - 0x2ea608, - 0x2a5748, - 0x2f9787, - 0x336c88, - 0x2c6885, - 0x21ba04, - 0x24adc8, - 0x275684, - 0x20f705, - 0x309944, - 0x2cfb07, - 0x296887, - 0x290d08, - 0x2dd186, - 0x28d5c5, - 0x289ec8, - 0x38bd08, - 0x2ad289, - 0x21bbc6, - 0x22f948, - 0x3b4d4a, - 0x333bc8, - 0x2f2485, - 0x2190c6, - 0x242188, - 0x3b8fca, - 0x221407, - 0x294705, - 0x3586c8, - 0x31a9c4, - 0x257246, - 0x2ce948, - 0x337046, - 0x208988, - 0x29f307, - 0x3365c6, - 0x2c44c4, - 0x278887, - 0x2bf944, - 0x38c687, - 0x2b8e4d, - 0x22f5c5, - 0x2e810b, - 0x26e546, - 0x256c48, - 0x245e04, - 0x2eed86, - 0x28d386, - 0x20dcc7, - 0x2a4dcd, - 0x248f07, - 0x2bff08, - 0x2900c5, - 0x23e308, - 0x2d3486, - 0x2c6908, - 0x23d546, - 0x27e147, - 0x25af49, - 0x380447, - 0x295a88, - 0x281dc5, - 0x2283c8, - 0x354785, - 0x228e85, - 0x33a505, - 0x2265c3, - 0x206c04, - 0x25fb85, - 0x389489, - 0x30ff46, - 0x2d2388, - 0x328685, - 0x2c1ec7, - 0x22234a, - 0x2d8549, - 0x2a8e0a, - 0x2e0508, - 0x21fb8c, - 0x291bcd, - 0x311883, - 0x208888, - 0x3c0ec5, - 0x33ba06, - 0x3a89c6, - 0x36dd85, - 0x363389, - 0x204d85, - 0x289ec8, - 0x25d9c6, - 0x36f646, - 0x2ae3c9, - 0x3ab147, - 0x2a0606, - 0x2222c8, - 0x207548, - 0x2ecac7, - 0x2cc20e, - 0x2d36c5, - 0x2eb9c5, - 0x336f48, - 0x34e7c7, - 0x200d02, - 0x2cc644, - 0x24a88a, - 0x237588, - 0x32d346, - 0x2a6e08, - 0x29b346, - 0x207288, - 0x2bb208, - 0x228e44, - 0x2c2285, - 0x680384, - 0x680384, - 0x680384, - 0x207503, - 0x200b46, - 0x28a386, - 0x2ab10c, - 0x205ec3, - 0x217e06, - 0x213c44, - 0x291548, - 0x3bf8c5, - 0x24a986, - 0x2c9048, - 0x2e2206, - 0x30c7c6, - 0x23b908, - 0x2e2fc7, - 0x278f09, - 0x32ad4a, - 0x26be84, - 0x207605, - 0x2cf045, - 0x2d6986, - 0x231b86, - 0x2a8c06, - 0x308e46, - 0x279044, - 0x27904b, - 0x2cf084, - 0x2ab2c5, - 0x2ba645, - 0x2abb86, - 0x3bfd88, - 0x291a87, - 0x332884, - 0x260143, - 0x31a4c5, - 0x305b07, - 0x29198b, - 0x373cc7, - 0x2c8f48, - 0x2c23c7, - 0x271dc6, - 0x28bb48, - 0x275a0b, - 0x3c28c6, - 0x3bc0c9, - 0x275b85, - 0x322203, - 0x2d8606, - 0x29f208, - 0x221f83, - 0x257803, - 0x2905c6, - 0x29b346, - 0x37af0a, - 0x28cb85, - 0x28d1cb, - 0x2abd0b, - 0x263583, - 0x201583, - 0x2be7c4, - 0x29b107, - 0x286084, - 0x291544, - 0x2f7c84, - 0x333ec8, - 0x2f4a48, - 0x21e589, - 0x2d67c8, - 0x2ef2c7, - 0x22fec6, - 0x2d1fcf, - 0x2d3806, - 0x2dfa04, - 0x2f488a, - 0x305a07, - 0x2bfa46, - 0x29f709, - 0x21e505, - 0x373f05, - 0x21e646, - 0x228503, - 0x31aa09, - 0x213b46, - 0x221cc9, - 0x39e046, - 0x270a85, - 0x226745, - 0x200bc3, - 0x29b248, - 0x332fc7, - 0x31edc4, - 0x2913c8, - 0x222544, - 0x310746, - 0x2cdb06, - 0x2404c6, - 0x2e2c89, - 0x23e1c5, - 0x2a4bc6, - 0x2972c9, - 0x3d4c86, - 0x2d20c6, - 0x3a3786, - 0x218ac5, - 0x309946, - 0x27e144, - 0x3a8205, - 0x2cd2c4, - 0x2c0a06, - 0x33c384, - 0x200f83, - 0x294385, - 0x234488, - 0x3cf687, - 0x31b689, - 0x294608, - 0x2a6451, - 0x32848a, - 0x2fc587, - 0x2dde06, - 0x213c44, - 0x2cd3c8, - 0x268088, - 0x2a660a, - 0x296a4d, - 0x297a86, - 0x23ba06, - 0x278946, - 0x242dc7, - 0x2bffc5, - 0x378047, - 0x291485, - 0x3208c4, - 0x2b5386, - 0x2ec007, - 0x31a70d, - 0x2420c7, - 0x3038c8, - 0x28a1c9, - 0x218fc6, - 0x22b045, - 0x240844, - 0x349606, - 0x33ae86, - 0x237706, - 0x2a7688, - 0x224083, - 0x20dcc3, - 0x205e45, - 0x252086, - 0x2bb1c5, - 0x2aedc8, - 0x2aab0a, - 0x33b084, - 0x291548, - 0x29f8c8, - 0x2ab9c7, - 0x328749, - 0x2c8c48, - 0x28ff87, - 0x2f7f06, - 0x33704a, - 0x349688, - 0x367b89, - 0x2b9808, - 0x214149, - 0x2ddcc7, - 0x35fa05, - 0x32d706, - 0x2bed48, - 0x290748, - 0x29fa48, - 0x2fc748, - 0x2ab2c5, - 0x20d784, - 0x232808, - 0x243ec4, - 0x32e1c4, - 0x270a85, - 0x2a1487, - 0x336049, - 0x20dac7, - 0x2129c5, - 0x285e86, - 0x3737c6, - 0x22a144, - 0x2ae706, - 0x28c7c4, - 0x29dc06, - 0x335e06, - 0x3bf346, - 0x3b6885, - 0x2aec87, - 0x204e03, - 0x220689, - 0x341a88, - 0x28fe04, - 0x28fe0d, - 0x2a5848, - 0x2f6808, - 0x367b06, - 0x25b049, - 0x2d8549, - 0x38c3c5, - 0x2aac0a, - 0x24f28a, - 0x27508c, - 0x275206, - 0x287986, - 0x2d4086, - 0x3a0a49, - 0x33bc46, - 0x2adb06, - 0x204e46, - 0x237348, - 0x336c86, - 0x2df38b, - 0x2a1605, - 0x242dc5, - 0x288005, - 0x27f5c6, - 0x21ba43, - 0x240446, - 0x242047, - 0x2cd285, - 0x25e685, - 0x38af05, - 0x3825c6, - 0x340704, - 0x340706, - 0x2b0ec9, - 0x27f44c, - 0x320608, - 0x2358c4, - 0x309646, - 0x26e646, - 0x29f208, - 0x3c5188, - 0x27f349, - 0x38cb07, - 0x2699c9, - 0x256f86, - 0x22a344, - 0x3d3584, - 0x28f584, - 0x2905c8, - 0x335e8a, - 0x364e06, - 0x370807, - 0x3961c7, - 0x36ec05, - 0x2cf004, - 0x29d3c6, - 0x2c0006, - 0x21a103, - 0x3418c7, + 0x346d44, + 0x368ac6, + 0x255fc6, + 0x3e017c2, + 0x23938f, + 0x205b8e, + 0x2199c4, + 0x215ac5, + 0x32bc45, + 0x2e1d89, + 0x23cc09, + 0x216dc7, + 0x21e046, + 0x248903, + 0x4220f02, + 0x222e83, + 0x317cca, + 0x46020c3, + 0x248d45, + 0x2ffe82, + 0x38a8c9, + 0x4e02442, + 0x20c3c4, + 0x3b89c6, + 0x336d45, + 0x36c084, + 0x5637884, + 0x20a683, + 0x233684, + 0x5a026c2, + 0x250bc4, + 0x5e6c7c4, + 0x398e8a, + 0x6200882, + 0x3b7607, + 0x206288, + 0x7202202, + 0x37e987, + 0x22d3c4, + 0x2c1807, + 0x22d3c5, + 0x351647, + 0x3cbf86, + 0x2ad604, + 0x32ec45, + 0x25bc47, + 0x82052c2, + 0x244683, + 0x20b582, + 0x3607c3, + 0x860d242, + 0x283a05, + 0x8a00202, + 0x243f44, + 0x2e1a05, + 0x219907, + 0x21f2ce, + 0x2b0444, + 0x265604, + 0x218a43, + 0x371bc9, + 0x257f0b, + 0x269488, + 0x2746c8, + 0x38c288, 0x28da08, - 0x38c50a, - 0x386a88, - 0x373b48, - 0x33c3c5, - 0x2ab545, - 0x269905, - 0x36efc6, - 0x383fc6, - 0x205405, - 0x332709, - 0x2cee0c, - 0x23bbc7, - 0x2a6688, - 0x290905, - 0x680384, - 0x2bc204, - 0x295684, - 0x21cb46, - 0x2acb4e, - 0x373f87, - 0x242fc5, - 0x367e8c, - 0x309a47, - 0x2ebf87, - 0x361cc9, - 0x20f7c9, - 0x294705, - 0x341a88, - 0x23e8c9, - 0x355585, - 0x2cd1c8, - 0x213cc6, - 0x24b046, - 0x38e644, - 0x29be88, - 0x219183, - 0x20ebc4, - 0x31a545, - 0x399fc7, - 0x380645, - 0x3b4c09, - 0x2a270d, - 0x2b9c46, - 0x35bec4, - 0x3579c8, - 0x27784a, - 0x2237c7, - 0x27e985, - 0x20ec03, - 0x2abece, - 0x29b34c, - 0x3c8007, - 0x2acd07, - 0x20af03, - 0x33bc85, - 0x295685, - 0x2a71c8, - 0x2a4909, - 0x2357c6, - 0x286084, - 0x2fc4c6, - 0x23498b, - 0x2c5ccc, - 0x255807, - 0x2df645, - 0x3d4348, - 0x2ec885, - 0x2f4887, - 0x3282c7, - 0x241e85, - 0x21ba43, - 0x334204, - 0x3a1745, - 0x2b4bc5, - 0x2b4bc6, - 0x2af4c8, - 0x2ec007, - 0x3a8cc6, - 0x3bd6c6, - 0x33a446, - 0x297b89, - 0x20e087, - 0x3cf306, - 0x2c5e46, - 0x284646, - 0x2b6785, - 0x3cd2c6, - 0x35b645, - 0x299808, - 0x2a3f4b, - 0x29cd86, - 0x396204, - 0x2dad49, - 0x237184, - 0x213c48, - 0x280b07, - 0x292b44, - 0x2c7ec8, - 0x2ce3c4, - 0x2b67c4, - 0x295045, - 0x3578c6, - 0x333e07, + 0x346b8a, + 0x351547, + 0x2c7086, + 0x8e4a0c2, + 0x309243, + 0x3ce603, + 0x3d0044, + 0x309283, + 0x3639c3, + 0x1739742, + 0x9202c42, + 0x27fe45, + 0x39eb86, + 0x281084, + 0x369247, + 0x250a06, + 0x2ba9c4, + 0x389207, + 0x203a83, + 0x96cb182, + 0x9a25a42, + 0x9e25802, + 0x225806, + 0xa200282, + 0x2850c5, + 0x33ac83, + 0x3c0604, + 0x2ef704, + 0x2ef705, + 0x3c4703, + 0xa64ce83, + 0xab3b5c2, + 0x28cf05, + 0x3da30b, + 0x2c004b, + 0x22afc4, + 0x3dc049, + 0x207fc4, + 0xae08202, 0x208a43, - 0x2ab905, - 0x345044, - 0x2eba06, - 0x38c448, - 0x26e1c5, - 0x2a0d09, - 0x23cbc5, - 0x217e08, - 0x272e87, - 0x332a08, - 0x2c7507, - 0x2446c9, - 0x28b246, - 0x320bc6, - 0x204e44, - 0x31a085, - 0x31374c, - 0x288007, - 0x2892c7, - 0x2317c8, - 0x2b9c46, - 0x27a984, - 0x3925c4, - 0x291089, - 0x2d4186, - 0x267f47, - 0x20d904, - 0x235086, - 0x351a85, - 0x2dccc7, - 0x2df306, - 0x261189, - 0x2d95c7, - 0x2a3687, - 0x2ae246, - 0x234fc5, - 0x28ea08, - 0x2139c8, - 0x2300c6, - 0x26e205, - 0x321d46, - 0x210283, - 0x2a7049, - 0x2a898e, - 0x2c7248, - 0x222648, - 0x22fecb, - 0x2a0f46, - 0x34d2c4, - 0x2917c4, - 0x2a8a8a, - 0x2121c7, - 0x3cf3c5, - 0x3bc0c9, - 0x2cc145, - 0x32e207, - 0x28d7c4, - 0x29fe07, - 0x2fa7c8, - 0x2e4686, - 0x2ec449, - 0x2c8d4a, - 0x212146, - 0x2a5386, - 0x2ba5c5, - 0x39b545, - 0x3374c7, - 0x249888, - 0x3519c8, - 0x228e46, - 0x2267c5, - 0x23190e, - 0x2c9404, - 0x230045, - 0x285809, - 0x2dc3c8, - 0x29b646, - 0x2a990c, - 0x2aa710, - 0x2ac78f, - 0x2ad848, - 0x358587, - 0x3b6885, - 0x25fb85, - 0x333c89, - 0x3588c9, - 0x22ba06, - 0x29afc7, - 0x319f85, - 0x22f549, - 0x364406, - 0x33ba8d, - 0x28f449, - 0x291544, - 0x2c6fc8, - 0x2328c9, - 0x364fc6, - 0x256345, - 0x320bc6, - 0x3c7549, - 0x38f608, - 0x20f685, - 0x29be84, - 0x2a9acb, - 0x364e85, - 0x2a9c06, - 0x291f06, - 0x202c86, - 0x2b188b, - 0x2a0e09, - 0x3bd605, - 0x396dc7, - 0x328406, - 0x256dc6, - 0x295408, - 0x3c1b09, - 0x30368c, - 0x305908, - 0x31dc46, - 0x3449c3, - 0x23b4c6, - 0x244585, - 0x28dd08, - 0x2261c6, - 0x2dcf08, - 0x233e05, - 0x2a67c5, - 0x272fc8, - 0x207407, - 0x3a8907, - 0x2f8087, - 0x302848, - 0x295108, - 0x2d2b06, - 0x2c0847, - 0x362bc7, - 0x2b158a, - 0x208d83, - 0x27f5c6, - 0x231885, - 0x24a884, - 0x28a1c9, - 0x244644, - 0x2808c4, - 0x2a5b44, - 0x2acd0b, - 0x332f07, - 0x231b45, - 0x2a3dc8, - 0x285e86, - 0x285e88, - 0x28cac6, - 0x29bdc5, - 0x29c085, - 0x29e146, - 0x29efc8, - 0x29f648, - 0x28a386, - 0x2a3c0f, - 0x2a6b10, - 0x3b7745, - 0x204e03, - 0x22a405, - 0x31e608, - 0x3587c9, - 0x3556c8, - 0x297a08, - 0x239a48, - 0x332fc7, - 0x285b49, - 0x2dd108, - 0x29d2c4, - 0x2a59c8, - 0x317189, - 0x2c1607, - 0x2a8904, - 0x20db88, - 0x2aea4a, - 0x2dbf86, - 0x297a86, - 0x21ba89, - 0x2aa947, - 0x2d9f48, - 0x20aec8, - 0x3bdd88, - 0x391b45, - 0x3c1405, - 0x242dc5, - 0x295645, - 0x3a3387, - 0x21ba45, - 0x2cd285, - 0x363086, - 0x355607, - 0x2e84c7, - 0x2aed46, - 0x2e0a45, - 0x2a9c06, - 0x2447c5, - 0x319e08, - 0x3c7e84, - 0x3d4d06, - 0x3518c4, - 0x2c41c8, - 0x22a7ca, - 0x28afcc, - 0x23c145, - 0x242e86, - 0x303846, - 0x334886, - 0x31dcc4, - 0x351d45, - 0x28c507, - 0x2aa9c9, - 0x2d8987, - 0x680384, - 0x680384, - 0x332d85, - 0x2de504, - 0x2a92ca, - 0x285d06, - 0x28bd84, - 0x335985, - 0x398b05, - 0x2bff04, - 0x291b47, - 0x23cb47, - 0x2d83c8, - 0x321e48, - 0x34b349, - 0x275688, - 0x2a948b, - 0x27e204, - 0x256ec5, - 0x25fdc5, - 0x2f8009, - 0x3c1b09, - 0x2dac48, - 0x305788, - 0x2abb84, - 0x26e685, - 0x200583, - 0x2d6945, - 0x2a4c46, - 0x2a474c, - 0x20d806, - 0x256246, - 0x29b8c5, - 0x382648, - 0x397c06, - 0x2ddf86, - 0x297a86, - 0x222f0c, - 0x2378c4, - 0x33a58a, - 0x29b808, - 0x2a4587, - 0x344f46, - 0x235887, - 0x2fc0c5, - 0x310046, - 0x36d046, - 0x379187, - 0x2c8a44, - 0x2cfc05, - 0x285804, - 0x320947, - 0x285a48, - 0x28780a, - 0x28f687, - 0x360847, - 0x358507, - 0x2ec9c9, - 0x2a474a, - 0x22a303, - 0x3cf645, - 0x2089c3, - 0x2f7cc9, - 0x27e3c8, - 0x365207, - 0x3557c9, - 0x213ac6, - 0x3a82c8, - 0x35a2c5, - 0x38be0a, - 0x34afc9, - 0x36e149, - 0x397ac7, - 0x268189, - 0x3bf248, - 0x379346, - 0x243048, - 0x3b8487, - 0x279147, - 0x2422c7, - 0x2ea488, - 0x3094c6, - 0x2ae805, - 0x28c507, - 0x2a4e88, - 0x33a3c4, - 0x303d04, - 0x2a0507, - 0x2bb587, - 0x23e74a, - 0x3792c6, - 0x35204a, - 0x2cc587, - 0x2c91c7, - 0x2cfcc4, - 0x2a1bc4, - 0x2dcbc6, - 0x33e1c4, - 0x33e1cc, - 0x30cfc5, - 0x3c1949, - 0x2bebc4, - 0x2bffc5, - 0x2777c8, - 0x28bf45, - 0x394846, - 0x22f444, - 0x2b380a, - 0x325dc6, - 0x2aa48a, - 0x32e587, - 0x2010c5, - 0x228505, - 0x36ec4a, - 0x29f145, - 0x2ad346, - 0x243ec4, - 0x2be946, - 0x337585, - 0x226286, - 0x2f978c, - 0x22318a, - 0x24f384, - 0x22fec6, - 0x2aa947, - 0x2df284, - 0x237348, - 0x257746, - 0x396049, - 0x2da689, - 0x2fcdc9, - 0x2d8c86, - 0x3b8586, - 0x243187, - 0x332648, - 0x3b8389, - 0x332f07, - 0x2c6706, - 0x3cf147, - 0x278805, - 0x2c9404, - 0x242d47, - 0x362d85, - 0x294f85, - 0x280fc7, - 0x241d48, - 0x3d42c6, - 0x2a5ecd, - 0x2a73cf, - 0x2abd0d, - 0x212a04, - 0x234586, - 0x2e3708, - 0x204e05, - 0x2b1748, - 0x262cca, - 0x291544, - 0x2ec606, - 0x2dfa87, - 0x2caa47, - 0x2e3089, - 0x243005, - 0x2bff04, - 0x2c21ca, - 0x2c8809, - 0x268287, - 0x2e8ac6, - 0x364fc6, - 0x26e5c6, - 0x383046, - 0x2e294f, - 0x2e35c9, - 0x336c86, - 0x38a806, - 0x331d09, - 0x2c0947, - 0x206343, - 0x223086, - 0x213643, - 0x36dc48, - 0x3cef87, - 0x2ada49, - 0x2cd988, - 0x3a8a48, - 0x205086, - 0x20d749, - 0x23bb05, - 0x23b404, - 0x35fac7, - 0x3a0ac5, - 0x212a04, - 0x231c08, - 0x212484, - 0x2c0687, - 0x339546, - 0x28e045, - 0x2b9808, - 0x364e8b, - 0x2cf347, - 0x36eec6, - 0x2d3884, - 0x34d246, - 0x270a85, - 0x362d85, - 0x28e789, - 0x291749, - 0x279184, - 0x2791c5, - 0x22ff05, - 0x38bc86, - 0x341b88, - 0x2cb646, - 0x28d84b, - 0x385c0a, - 0x2c7605, - 0x29c106, - 0x31eac5, - 0x2f1585, - 0x2b6847, - 0x27f848, - 0x2699c4, - 0x267ac6, - 0x29f6c6, - 0x3bf407, - 0x3221c4, - 0x28d386, - 0x33acc5, - 0x33acc9, - 0x2e4444, - 0x2cf189, - 0x28a386, - 0x2cdd48, - 0x22ff05, - 0x3962c5, - 0x226286, - 0x303589, - 0x20f7c9, - 0x2562c6, - 0x2dc4c8, - 0x2a2848, - 0x31ea84, - 0x2c2a84, - 0x2c2a88, - 0x33d6c8, - 0x269ac9, - 0x2a4bc6, - 0x297a86, - 0x34400d, - 0x327f86, - 0x2c1909, - 0x23a2c5, - 0x21e646, - 0x3bdf08, - 0x340645, - 0x362c04, - 0x270a85, - 0x290f08, - 0x2a9089, - 0x2858c4, - 0x2c4046, - 0x28be0a, - 0x3c7f08, - 0x23e8c9, - 0x2713ca, - 0x355746, - 0x2a7588, - 0x2f4645, - 0x29ba88, - 0x2fc145, - 0x213989, - 0x346ac9, - 0x235802, - 0x275b85, - 0x25fe86, - 0x28a2c7, - 0x37c4c5, - 0x2fa6c6, - 0x317d88, - 0x2b9c46, - 0x2d5f49, - 0x2893c6, - 0x295288, - 0x2ee585, - 0x3acec6, - 0x27e248, - 0x2905c8, - 0x2ddbc8, - 0x34a108, - 0x3cd2c4, - 0x201803, - 0x2d6184, - 0x28f886, - 0x278844, - 0x222587, - 0x2dde89, - 0x2d2e85, - 0x20aec6, - 0x223086, - 0x2af30b, - 0x2bf986, - 0x2017c6, - 0x3d4e08, - 0x307446, - 0x200ec3, - 0x3cbac3, - 0x2c9404, - 0x22f845, - 0x30d107, - 0x285a48, - 0x285a4f, - 0x28c40b, - 0x341988, - 0x2c40c6, - 0x341c8e, - 0x226283, - 0x30d084, - 0x2bf905, - 0x2bfd86, - 0x29d4cb, - 0x2a1546, - 0x229f09, - 0x28e045, - 0x245788, - 0x337988, - 0x20f68c, - 0x2acd46, - 0x2d6986, - 0x2ed6c5, - 0x295848, - 0x27e245, - 0x368a08, - 0x2a9c8a, - 0x2ac149, - 0x680384, - 0x200742, - 0x41a04502, - 0x201382, - 0x21f504, - 0x202bc2, - 0x21af04, - 0x2015c2, - 0x1ba03, - 0x200342, - 0x203582, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x24dd03, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x2056c3, - 0x2056c4, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x2e4e84, - 0x215e43, - 0x37c787, - 0x20e403, - 0x21ba03, - 0x244e08, - 0x201ac3, - 0x29d84b, - 0x2fd603, - 0x25d5c6, - 0x202b82, - 0x2f6fcb, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x201ac3, - 0x209943, - 0x22d1c3, - 0x200742, - 0xb2b48, - 0x20ba85, - 0x362e08, - 0x3045c8, - 0x204502, - 0x32cd05, - 0x3b6947, - 0x201d42, - 0x246047, - 0x201382, - 0x260cc7, - 0x321749, - 0x2f4208, - 0x3bdc09, - 0x20b3c2, - 0x34b1c7, - 0x233a84, - 0x3b6a07, - 0x385b07, - 0x25f482, - 0x20e403, - 0x202c42, - 0x2015c2, - 0x200342, - 0x2036c2, - 0x200382, - 0x203582, - 0x2b6f85, - 0x2a1085, - 0x4502, - 0x32ec3, - 0x22cc43, - 0x232ec3, - 0x20d9c3, - 0x215e43, - 0x219203, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x75003, - 0x201ac3, - 0xaac3, - 0x781, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x213303, - 0x21c103, - 0x75003, - 0x201ac3, - 0x2153c3, - 0x44c77106, - 0x75fc3, - 0xd3ac5, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x75003, - 0x201ac3, - 0xa502, - 0xb2b48, - 0x1ba03, - 0x75003, - 0x49844, - 0xecc85, - 0x200742, - 0x3af1c4, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x247dc3, - 0x22e005, - 0x213303, - 0x223643, - 0x21c103, - 0x252043, - 0x201ac3, - 0x203583, - 0x205743, - 0x202903, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x200742, - 0x24dd03, - 0x204502, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x203582, - 0xb2b48, - 0x215e43, - 0x75003, - 0xb2b48, - 0x75003, - 0x2c3f43, - 0x22cc43, - 0x230484, - 0x232ec3, - 0x215e43, - 0x205142, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x205142, - 0x228c03, - 0x21c103, - 0x201ac3, - 0x2f5d43, - 0x203583, - 0x200742, - 0x204502, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x25d5c5, - 0x15b286, - 0x2056c4, - 0x202b82, - 0xb2b48, - 0x200742, - 0xfe4c5, - 0x19c48, - 0x81bc3, - 0x204502, - 0x49115c06, - 0x7a44, - 0xbdf8b, - 0x3ad06, - 0xe507, - 0x232ec3, - 0x4cf88, - 0x4cf8b, - 0x4d40b, - 0x4da8b, - 0x4ddcb, - 0x4e08b, - 0x4e4cb, - 0x215e43, - 0x13c2c5, - 0x80144, - 0x213d03, - 0x55287, - 0xe8044, - 0x21c103, - 0x563c6, - 0x12ba04, - 0x75003, - 0x201ac3, - 0x2ff404, - 0x133507, - 0x15ae89, - 0xbdd48, - 0x1b7d44, - 0x107146, - 0xa388, - 0x7c305, - 0x1cbc09, - 0xfe4c5, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21ba03, - 0x201ac3, - 0x2fd603, - 0x202b82, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21cc83, - 0x221904, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x2e4e84, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x25d5c6, - 0x232ec3, - 0x215e43, - 0x3f543, - 0x75003, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0xfe4c5, - 0xe507, - 0xb2b48, - 0x215e43, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x4be2cc43, - 0x232ec3, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x200742, - 0x204502, - 0x22cc43, - 0x215e43, - 0x21c103, - 0x200342, - 0x201ac3, - 0x347007, - 0x33cd0b, - 0x20b9c3, - 0x2387c8, - 0x3323c7, + 0x208fc3, + 0xb201a42, + 0x2ee503, + 0x20a94a, + 0xb6010c2, + 0x2dca05, + 0x2e0f4a, + 0x38b104, + 0x20b083, + 0x20b944, + 0x20c483, + 0x20c484, + 0x20c487, + 0x20db85, + 0x210d86, 0x211146, - 0x2195c5, - 0x32ce49, - 0x20e188, - 0x346049, - 0x346050, - 0x37e94b, - 0x2f0149, - 0x206103, - 0x238a09, - 0x231186, - 0x23118c, - 0x20bb48, - 0x3d4ac8, - 0x200289, - 0x2c10ce, - 0x32150b, - 0x32d94c, - 0x229a43, - 0x29330c, - 0x3bd049, - 0x23fec7, - 0x232e0c, - 0x2bcbca, - 0x24fc04, - 0x36e80d, - 0x2931c8, - 0x3cc0cd, - 0x3746c6, - 0x2480cb, - 0x35b009, - 0x38aa87, - 0x38e346, - 0x377ac9, - 0x38c04a, - 0x327d08, - 0x2fd204, - 0x39a347, - 0x2477c7, - 0x206d04, - 0x2eda84, - 0x2081c9, - 0x3c2709, - 0x2183c8, - 0x20a745, - 0x20b305, - 0x3cce86, - 0x36e6c9, - 0x262f4d, - 0x257948, - 0x3ccd87, - 0x219648, - 0x239d86, - 0x23f804, - 0x2b6385, - 0x3b8286, - 0x3bbdc4, - 0x3bcf47, - 0x3c054a, - 0x20f5c4, - 0x212086, - 0x213609, - 0x21360f, - 0x213e4d, - 0x214386, - 0x219850, - 0x219c46, - 0x21a347, - 0x21b087, - 0x21b08f, - 0x21bd49, - 0x220f46, - 0x223407, - 0x223408, - 0x223989, - 0x28e108, - 0x2f2107, - 0x201843, - 0x22cac6, - 0x3ad7c8, - 0x2c138a, - 0x20ee09, - 0x20e2c3, - 0x32cc06, - 0x26790a, - 0x285647, - 0x23fd0a, - 0x31590e, - 0x21be86, - 0x275d87, - 0x349986, - 0x246bc6, - 0x3c120b, - 0x20b48a, - 0x2d000d, - 0x3b8647, - 0x26bec8, - 0x26bec9, - 0x26becf, - 0x31b80c, - 0x272b09, - 0x2dd5ce, - 0x37c88a, - 0x201546, - 0x3d6dc6, - 0x32aa8c, - 0x34254c, - 0x3490c8, - 0x380347, - 0x2ebe85, - 0x228144, - 0x20450e, - 0x268584, - 0x353487, - 0x3d2d8a, - 0x22bed4, - 0x22c50f, - 0x21b248, - 0x22c988, - 0x34cb0d, - 0x34cb0e, - 0x22cc49, - 0x22e508, - 0x22e50f, - 0x232b0c, - 0x232b0f, - 0x2342c7, - 0x236c8a, - 0x24880b, - 0x239748, - 0x23b647, - 0x26208d, - 0x334746, - 0x36e9c6, - 0x2402c9, - 0x271088, - 0x2469c8, - 0x2469ce, - 0x33ce07, - 0x248ac5, - 0x249605, - 0x208604, - 0x211406, - 0x2182c8, - 0x209183, - 0x2fdf4e, - 0x262448, - 0x2b0acb, - 0x314907, - 0x228c85, - 0x293486, - 0x2b8907, - 0x37dc48, - 0x259589, - 0x230bc5, - 0x2943c8, - 0x223c86, - 0x3c674a, - 0x204409, - 0x232ec9, - 0x232ecb, - 0x203108, - 0x206bc9, - 0x20a806, - 0x38974a, - 0x2e67ca, - 0x236e8c, - 0x31f087, - 0x2f400a, - 0x33530b, - 0x335319, - 0x322ac8, - 0x25d645, - 0x262246, - 0x2a6209, - 0x209806, - 0x26a1ca, - 0x20e386, - 0x204b04, - 0x2d4c0d, - 0x204b07, - 0x2215c9, - 0x24c045, - 0x24c488, - 0x24cd49, - 0x24f1c4, - 0x24fb07, - 0x24fb08, - 0x24ff47, - 0x26b388, - 0x255d07, - 0x22b285, - 0x25cf4c, - 0x25d7c9, - 0x2e334a, - 0x3aafc9, - 0x238b09, - 0x38a5cc, - 0x26000b, - 0x260fc8, - 0x262848, - 0x266904, - 0x292808, - 0x293a89, - 0x2bcc87, - 0x213846, - 0x2a5d07, - 0x29d0c9, - 0x28658b, - 0x27c187, - 0x3d3907, - 0x32e6c7, - 0x3cc044, - 0x3cc045, - 0x2e4b85, - 0x35f38b, - 0x3b5ac4, - 0x2f5748, - 0x3011ca, - 0x223d47, - 0x299ec7, - 0x29c912, - 0x29db06, - 0x22fac6, - 0x26dbce, - 0x29e746, - 0x2a1d48, - 0x2a220f, - 0x3cc488, - 0x3a7588, - 0x357e4a, - 0x357e51, - 0x2aefce, - 0x25a2ca, - 0x25a2cc, - 0x22e707, - 0x22e710, - 0x3b48c8, - 0x2af1c5, - 0x2b9a0a, - 0x3bbe0c, - 0x2c6a4d, - 0x34b546, - 0x34b547, - 0x34b54c, - 0x3a904c, - 0x21330c, - 0x2cf68b, - 0x39eb44, - 0x21bc04, - 0x2bc489, - 0x392647, - 0x3a0049, - 0x2e6609, - 0x2bc887, - 0x2bca46, - 0x2bca49, - 0x2bce43, - 0x2b9d4a, - 0x33ec47, - 0x2077cb, - 0x2cfe8a, - 0x233b04, - 0x352646, - 0x28f909, - 0x33e044, - 0x36f1ca, - 0x2c3745, - 0x2c9805, - 0x2c980d, - 0x2c9b4e, - 0x2d62c5, - 0x3456c6, - 0x25d1c7, - 0x270e0a, - 0x268886, - 0x30f0c4, - 0x30b647, - 0x2e01cb, - 0x26b087, - 0x250744, - 0x2924c6, - 0x2924cd, - 0x2e6c0c, - 0x220446, - 0x257b4a, - 0x2740c6, - 0x240948, - 0x2302c7, - 0x23eeca, - 0x24c306, - 0x28d403, - 0x33c486, - 0x3ad648, - 0x2bc60a, - 0x292dc7, - 0x292dc8, - 0x2dd284, - 0x29bc07, - 0x2d8f88, - 0x2a6808, - 0x2d2c08, - 0x2f81ca, - 0x2eb3c5, - 0x2f11c7, - 0x25a113, - 0x271946, - 0x21c688, - 0x21ecc9, - 0x245f08, - 0x20510b, - 0x3a8dc8, - 0x293984, - 0x2730c6, - 0x325246, - 0x357709, - 0x3a2147, - 0x25d048, - 0x2a6986, - 0x280ec4, - 0x3a4c45, - 0x2d9408, - 0x288dca, - 0x2d4888, - 0x2da486, - 0x2a778a, - 0x2b4d48, - 0x2df088, - 0x2dfc48, - 0x2e0706, - 0x2e3906, - 0x3a5d8c, - 0x2e3e90, - 0x2ba885, - 0x319a48, - 0x319a50, - 0x3cc290, - 0x345ece, - 0x3a5a0e, - 0x3a5a14, - 0x3aa54f, - 0x3aa906, - 0x3d5bd1, - 0x2032d3, - 0x203748, - 0x206dc5, - 0x33d9c8, - 0x354845, - 0x38f00c, - 0x2272c9, - 0x227f89, - 0x389c47, - 0x315dc9, - 0x269d87, - 0x3097c6, - 0x2b6187, - 0x209f85, - 0x20ab03, - 0x209349, - 0x24d749, - 0x23f543, - 0x37c3c4, - 0x38cc8d, - 0x32efcf, - 0x280f05, - 0x38b546, - 0x21e047, - 0x20b8c7, - 0x383386, - 0x38338b, - 0x2afe85, - 0x25e8c6, - 0x30a487, - 0x256889, - 0x26ab86, - 0x386205, - 0x33fc8b, - 0x34aec6, - 0x3c1685, - 0x2443c8, - 0x29e508, - 0x2b268c, - 0x2b2690, - 0x399189, - 0x2bd687, - 0x2ca0cb, - 0x303206, - 0x2f1fca, - 0x2f2d0b, - 0x2f344a, - 0x2f36c6, - 0x2f5c05, - 0x3322c6, - 0x289588, - 0x389d0a, - 0x34c79c, - 0x2fd6cc, - 0x2fd9c8, - 0x25d5c5, - 0x391887, - 0x281a86, - 0x277bc5, - 0x215b86, - 0x383548, - 0x2c8a87, - 0x2c0fc8, - 0x271a0a, - 0x21e14c, - 0x348649, - 0x3cd087, - 0x2ca7c4, - 0x2496c6, - 0x3a710a, - 0x2e6705, - 0x22560c, - 0x2296c8, - 0x2b4fc8, - 0x3543cc, - 0x230ccc, - 0x233649, - 0x233887, - 0x39118c, - 0x222b44, - 0x24fcca, - 0x35c3cc, - 0x25a58b, - 0x25b6cb, - 0x25e4c6, - 0x266a87, - 0x22e947, - 0x22e94f, - 0x30de11, - 0x2e9b92, - 0x2689cd, - 0x2689ce, - 0x268d0e, - 0x3aa708, - 0x3aa712, - 0x272588, - 0x21f307, - 0x25298a, - 0x2b3648, - 0x29e705, - 0x3a31ca, - 0x219fc7, - 0x2fe284, - 0x21b7c3, - 0x2368c5, - 0x3580c7, - 0x30e947, - 0x2c6c4e, - 0x35cbcd, - 0x35d209, - 0x23c5c5, - 0x37a943, - 0x3c2d86, - 0x25eec5, - 0x2b0d08, - 0x2c59c9, - 0x262285, - 0x26228f, - 0x2be087, - 0x219445, - 0x3152ca, - 0x3b7a06, - 0x35fd89, - 0x3bab4c, - 0x308889, - 0x3c0f46, - 0x300fcc, - 0x344ac6, - 0x30b1c8, - 0x30b806, - 0x322c46, - 0x2bfb04, - 0x320b43, - 0x2c858a, - 0x32e9d1, - 0x278cca, - 0x28b4c5, - 0x3b7207, - 0x25a947, - 0x2d9084, - 0x2d908b, - 0x3bda88, - 0x2c70c6, - 0x231845, - 0x330184, - 0x249389, - 0x204344, - 0x246807, - 0x3caa05, - 0x3caa07, - 0x26de05, - 0x36e0c3, - 0x21f1c8, - 0x351b0a, - 0x208a43, - 0x20baca, - 0x3c78c6, - 0x26200f, - 0x3ce589, - 0x2fded0, - 0x302f88, - 0x2db389, - 0x2a2047, - 0x29244f, - 0x355b84, - 0x2e4f04, - 0x207146, - 0x3ac406, - 0x286a8a, - 0x2633c6, - 0x39f887, - 0x316248, - 0x316447, - 0x317b47, - 0x318b0a, - 0x31d14b, - 0x378185, - 0x2e97c8, - 0x2076c3, - 0x3a85cc, - 0x35048f, - 0x2ebc8d, - 0x25dc07, - 0x35d349, - 0x229cc7, - 0x2425c8, - 0x22c0cc, - 0x293888, - 0x2768c8, - 0x334ace, - 0x34f154, - 0x34f664, - 0x36708a, - 0x37edcb, - 0x269e44, - 0x269e49, - 0x2ec688, - 0x249dc5, - 0x208c8a, - 0x262687, - 0x3321c4, - 0x24dd03, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x213303, - 0x20e403, - 0x2e3e86, - 0x221904, - 0x21c103, - 0x201ac3, - 0x214903, - 0x200742, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x215e43, - 0x213303, - 0x2e3e86, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x21c103, - 0x75003, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x221904, - 0x21c103, - 0x201ac3, - 0x200742, - 0x250bc3, - 0x204502, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x205382, - 0x20ecc2, - 0x204502, - 0x22cc43, - 0x205fc2, - 0x201582, - 0x21f504, - 0x21af04, - 0x237d02, - 0x221904, - 0x200342, - 0x201ac3, - 0x214903, - 0x25e4c6, - 0x25efc2, - 0x201882, - 0x21ffc2, - 0x4e615d03, - 0x4ea2e703, - 0x5b286, - 0x5b286, - 0x2056c4, - 0x21ba03, - 0x1814a, - 0x8740c, - 0x1ad8c, - 0xd38cd, - 0xfe4c5, - 0x992cc, - 0x163b47, - 0x10506, - 0x14508, - 0x17c07, - 0x1d3c8, - 0x16feca, - 0x10bb07, - 0x4f699505, - 0xe59c9, - 0x353cb, - 0xeb4b, - 0x1b2b88, - 0x59209, - 0x1af8ca, - 0x16e8e, - 0x14008d, - 0x1445d0b, - 0xe6aca, - 0x7a44, - 0x5ea06, - 0x1b8dc8, - 0x97fc8, - 0x35687, - 0xcd45, - 0x134287, - 0x4ba49, - 0x13e0c7, - 0x5c248, - 0x1077c9, - 0x500c4, - 0x57fc5, - 0x190e, - 0xee5cd, - 0xe388, - 0x4fa96f06, - 0x505773c8, - 0x823c8, - 0x147210, - 0x5884c, - 0x67607, - 0x68447, - 0x70cc7, - 0x774c7, - 0x1282, - 0x2147, - 0xb64c, - 0x54c5, - 0x7ec07, - 0xb2546, - 0xb3a89, - 0xb5508, - 0x58e82, - 0x1582, - 0x1922c6, - 0x137b4b, - 0x137e46, - 0x148f07, - 0x3a3c9, - 0x7acc9, - 0x43448, - 0x4e2c2, - 0x197009, - 0x116e4a, - 0x2bc6, - 0xd7ac9, - 0xe6a47, - 0xe7189, - 0xe9108, - 0xea047, - 0xeb349, - 0xef505, - 0xef890, - 0xfeb06, - 0x148e45, - 0x174407, - 0x1cfa0d, - 0x442c5, - 0x2b806, - 0xf7407, - 0xff418, - 0x13e448, - 0x29ca, - 0x1202, - 0x5b48a, - 0x7614d, - 0xc02, - 0xdc886, - 0x52188, - 0x4ed08, - 0x74949, - 0x116bc8, - 0x84b8e, - 0x74b88, - 0x1c2d87, - 0x11158d, - 0x106545, - 0x1ec8, - 0x1abfc8, - 0x111b86, - 0x73c2, - 0x33506, - 0x107146, - 0x74c2, - 0x2c1, - 0x60987, - 0x4e803, - 0x4feffc84, - 0x502a2fc3, - 0x101, - 0x12686, - 0x101, - 0x301, - 0x12686, - 0x4e803, - 0x158fb45, - 0x4502, - 0x24fc04, - 0x22cc43, - 0x251344, - 0x21f504, - 0x21c103, - 0x21eb85, - 0x2153c3, - 0x202ac3, - 0x383305, - 0x202903, - 0x5162cc43, - 0x232ec3, - 0x215e43, - 0x200541, - 0x20e403, - 0x21af04, - 0x221904, - 0x21c103, - 0x201ac3, - 0x203583, - 0xb2b48, - 0x200742, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x201582, - 0x21f504, - 0x213303, - 0x20e403, - 0x21c103, - 0x21ba03, - 0x201ac3, - 0x202903, - 0xb2b48, - 0x123607, - 0x4502, - 0x1a4bc5, - 0x5898f, - 0x14975c8, - 0x11754e, - 0x52625f82, - 0x331948, - 0x226406, - 0x2d08c6, - 0x225d87, - 0x52a06d42, - 0x52fce408, - 0x20d54a, - 0x267088, - 0x200602, - 0x33ea89, - 0x3781c7, - 0x2137c6, - 0x21ef09, - 0x2f1304, - 0x211046, - 0x2d0cc4, - 0x26fe04, - 0x25cb49, - 0x30bfc6, - 0x2f1b05, - 0x287dc5, - 0x22dd47, - 0x2cc807, - 0x29dd44, - 0x225fc6, - 0x300845, - 0x2cf985, - 0x31ea05, - 0x298147, - 0x314745, - 0x24d1c9, - 0x38ebc5, - 0x37dd84, - 0x2687c7, - 0x26eb4e, - 0x27fa09, - 0x26da89, - 0x333986, - 0x241a08, - 0x2eee8b, - 0x3738cc, - 0x356dc6, - 0x32d807, - 0x2bea45, - 0x2eda8a, - 0x2184c9, - 0x399889, - 0x26f6c6, - 0x30a245, - 0x249985, - 0x34ac49, - 0x31eb8b, - 0x2847c6, - 0x35a686, - 0x2049c4, - 0x29c5c6, - 0x248b48, - 0x3ad4c6, - 0x323d06, - 0x3beb08, - 0x3c0d47, - 0x3c24c9, - 0x3c3485, - 0xb2b48, - 0x3c9644, - 0x3180c4, - 0x20b185, - 0x34dcc9, - 0x21dd07, - 0x21dd0b, - 0x2208ca, - 0x227205, - 0x53201842, - 0x2cfd47, - 0x53627d48, - 0x2cba87, - 0x227745, - 0x390e8a, - 0x4502, - 0x287a8b, - 0x28c64a, - 0x24d646, - 0x20a403, - 0x2b8b8d, - 0x38b88c, - 0x3369cd, - 0x28d785, - 0x340985, - 0x2091c7, - 0x34cf49, - 0x20d446, - 0x263245, - 0x2f2b08, - 0x29c4c3, - 0x3048c8, - 0x29c4c8, - 0x2d19c7, - 0x38de48, - 0x26d389, - 0x2dbe07, - 0x33c887, - 0x33e908, - 0x309f84, - 0x309f87, - 0x3745c8, - 0x367786, - 0x35278f, - 0x228787, - 0x36d906, - 0x2339c5, - 0x220143, - 0x24b1c7, - 0x388a43, - 0x250306, - 0x252686, - 0x253046, - 0x2a0b05, - 0x26b383, - 0x396c88, - 0x38d909, - 0x39d6cb, - 0x2531c8, - 0x2559c5, - 0x257105, - 0x53a33bc2, - 0x2b6249, - 0x21f587, - 0x25e945, - 0x25ca47, - 0x25e0c6, - 0x382f05, - 0x25ed0b, - 0x260fc4, - 0x266c45, - 0x266d87, - 0x284146, - 0x284585, - 0x292a07, - 0x293607, - 0x2e8444, - 0x2990ca, - 0x299cc8, - 0x2f46c9, - 0x33dd05, - 0x3740c6, - 0x248d0a, - 0x287cc6, - 0x26ba07, - 0x2f438d, - 0x2af9c9, - 0x32fa45, - 0x26ef47, - 0x33f648, - 0x27e008, - 0x3a93c7, - 0x3b2e46, - 0x223ec7, - 0x255443, - 0x30bf44, - 0x3809c5, - 0x3a9c47, - 0x3aebc9, - 0x273c88, - 0x22c385, - 0x24f0c4, - 0x24d945, - 0x25338d, - 0x203602, - 0x274246, - 0x2dc7c6, - 0x31888a, - 0x39c5c6, - 0x3a7045, - 0x321f45, - 0x321f47, - 0x3c658c, - 0x28224a, - 0x29c286, - 0x2e3805, - 0x29c406, - 0x29c747, - 0x29ea06, - 0x2a0a0c, - 0x21f049, - 0x53e12b07, - 0x2a25c5, - 0x2a25c6, - 0x2a2a48, - 0x24eb45, - 0x2b0785, - 0x2b1b48, - 0x2b1d4a, - 0x542882c2, - 0x546783c2, - 0x31a1c5, - 0x278843, - 0x273648, - 0x25e283, - 0x2b1fc4, - 0x35fecb, - 0x3bf088, - 0x320448, - 0x54a7e649, - 0x2b6c89, - 0x2b73c6, - 0x2b8588, - 0x2b8789, - 0x2ba406, - 0x2ba585, - 0x24b846, - 0x2baa89, - 0x2c31c7, - 0x3acd86, - 0x21a187, - 0x207b87, - 0x226b44, - 0x54f3e749, - 0x277e08, - 0x3ce308, - 0x281107, - 0x2d4346, - 0x337249, - 0x2d0f87, - 0x27c98a, - 0x351e88, - 0x3b74c7, - 0x211f06, - 0x37420a, - 0x241108, - 0x2dc245, - 0x225105, - 0x351047, - 0x30fb49, - 0x31550b, - 0x330708, - 0x38ec49, - 0x253a87, - 0x2c484c, - 0x2c504c, - 0x2c534a, - 0x2c55cc, - 0x2d0848, - 0x2d0a48, - 0x2d0c44, - 0x2d1149, - 0x2d1389, - 0x2d15ca, - 0x2d1849, - 0x2d1b87, - 0x39d00c, - 0x235dc6, - 0x2f3d48, - 0x287d86, - 0x3a3006, - 0x32f947, - 0x3377c8, - 0x321b0b, - 0x2cb947, - 0x25c809, - 0x2b6449, - 0x3b7347, - 0x23e6c4, - 0x262b47, - 0x30c646, - 0x210f46, - 0x257d05, - 0x2d7c88, - 0x315cc4, - 0x315cc6, - 0x28210b, - 0x2ba049, - 0x239e46, - 0x323f09, - 0x20b246, - 0x288fc8, - 0x21c843, - 0x30a3c5, - 0x220b09, - 0x223745, - 0x350e84, - 0x2835c6, - 0x236245, - 0x258bc6, - 0x31d4c7, - 0x335206, - 0x30c94b, - 0x389647, - 0x38ad46, - 0x230186, - 0x22de06, - 0x29dd09, - 0x2f9a0a, - 0x2c73c5, - 0x21c2cd, - 0x2b1e46, - 0x3013c6, - 0x2fddc6, - 0x2408c5, - 0x2efb87, - 0x228f47, - 0x27b24e, - 0x20e403, - 0x2d4309, - 0x3488c9, - 0x2ede87, - 0x272247, - 0x2a8d05, - 0x310145, - 0x5520830f, - 0x2db5c7, - 0x2db788, - 0x2dbb44, - 0x2dc106, - 0x55649682, - 0x2e0986, - 0x2e3e86, - 0x348a8e, - 0x30470a, - 0x3cec06, - 0x2ca90a, - 0x3367c9, - 0x2fb605, - 0x303408, - 0x310606, - 0x2a9708, - 0x38e4c8, - 0x22bc0b, - 0x225e85, - 0x3147c8, - 0x3bec4c, - 0x227607, - 0x2528c6, - 0x323ac8, - 0x2112c8, - 0x55a4ffc2, - 0x3c368b, - 0x299989, - 0x217f89, - 0x3380c7, - 0x3c14c8, - 0x55e0ca88, - 0x205f0b, - 0x2432c9, - 0x29018d, - 0x336d88, - 0x365448, - 0x562052c2, - 0x26d9c4, - 0x5662e8c2, - 0x308586, - 0x56a08802, - 0x2fb40a, - 0x337686, - 0x26a5c8, - 0x26f888, - 0x22a5c6, - 0x32dd06, - 0x302d06, - 0x2b0c85, - 0x23a7c4, - 0x56e38344, - 0x360646, - 0x2bd247, - 0x57256487, - 0x2ee38b, - 0x2cbc89, - 0x3409ca, - 0x322084, - 0x33c708, - 0x3acb4d, - 0x2fba89, - 0x2fbcc8, - 0x2fbf49, - 0x2ff404, - 0x2486c4, - 0x3a0dc5, - 0x33b48b, - 0x3bf006, - 0x360485, - 0x27da89, - 0x226088, - 0x2384c4, - 0x2edc09, - 0x31abc5, - 0x2cc848, - 0x33cf47, - 0x26de88, - 0x28fb06, - 0x35c0c7, - 0x2e7e09, - 0x33fe09, - 0x3c1705, - 0x24a7c5, - 0x57607942, - 0x37db44, - 0x20b045, - 0x225c86, - 0x382505, - 0x30d3c7, - 0x2e8bc5, - 0x284184, - 0x333a46, - 0x2632c7, - 0x22d086, - 0x324e85, - 0x21f9c8, - 0x226605, - 0x2235c7, - 0x363cc9, - 0x2ba18a, - 0x31b287, - 0x31b28c, - 0x2f1ac6, - 0x24eec9, - 0x24b6c5, - 0x24ea88, - 0x20a7c3, - 0x20a7c5, - 0x30c305, - 0x39c1c7, - 0x57a0c502, - 0x2f6b47, - 0x2f3806, - 0x30eec6, - 0x300c06, - 0x211206, - 0x31ae48, - 0x33db05, - 0x36d9c7, - 0x36d9cd, - 0x21b7c3, - 0x21b7c5, - 0x315087, - 0x2f6e88, - 0x314c45, - 0x214b48, - 0x39ff46, - 0x2e5b87, - 0x2d3045, - 0x225f06, - 0x3af245, - 0x20d20a, - 0x35f906, - 0x279587, - 0x2dba05, - 0x3086c7, - 0x30b5c4, - 0x350e06, - 0x310545, - 0x20bfcb, - 0x30c4c9, - 0x250cca, - 0x3c1788, - 0x313248, - 0x31c88c, - 0x31df47, - 0x341788, - 0x346408, - 0x357605, - 0x3678ca, - 0x37a949, - 0x57e02482, - 0x3d3706, - 0x262284, - 0x324789, - 0x283b09, - 0x2a34c7, - 0x330d07, - 0x2e6489, - 0x2f83c8, - 0x2f83cf, - 0x2248c6, - 0x2e568b, - 0x26b705, - 0x26b707, - 0x3aab49, - 0x2edb86, - 0x2edb87, - 0x2e9f05, - 0x230ac4, - 0x23bd06, - 0x2161c4, - 0x234cc7, - 0x2c1cc8, - 0x5830a148, - 0x30ab05, - 0x30ac47, - 0x31bcc9, - 0x21e644, - 0x243e88, - 0x58672cc8, - 0x2d9084, - 0x312c88, - 0x38e404, - 0x216089, - 0x21c5c5, - 0x58a02b82, - 0x224905, - 0x2de445, - 0x2048c8, - 0x234107, - 0x58e04342, - 0x238485, - 0x2def06, - 0x245186, - 0x37db08, - 0x37ebc8, - 0x3824c6, - 0x3924c6, - 0x3236c9, - 0x30ee06, - 0x33440b, - 0x38fa85, - 0x2b3586, - 0x2593c8, - 0x29fcc6, - 0x22ce06, - 0x21500a, - 0x2b704a, - 0x253685, - 0x33dbc7, - 0x2fa4c6, - 0x59206e42, - 0x3151c7, - 0x2604c5, - 0x248c84, - 0x248c85, - 0x33c606, - 0x27a487, - 0x207145, - 0x283bc4, - 0x2eae88, - 0x22cec5, - 0x3d0647, - 0x311d05, - 0x20d145, - 0x23da44, - 0x23da49, - 0x300688, - 0x305086, - 0x317006, - 0x202406, - 0x59711e48, - 0x312047, - 0x31274d, - 0x31344c, - 0x313a49, - 0x313c89, - 0x59b78c02, - 0x3ce0c3, - 0x253703, - 0x30c705, - 0x3a9d4a, - 0x349e46, - 0x318445, - 0x31d684, - 0x31d68b, - 0x338b4c, - 0x339bcc, - 0x339ed5, - 0x3403cd, - 0x34284f, - 0x342c12, - 0x34308f, - 0x343452, - 0x3438d3, - 0x343d8d, - 0x34434d, - 0x3446ce, - 0x344c4e, - 0x34548c, - 0x34584c, - 0x345c8b, - 0x346d0e, - 0x347612, - 0x349c0c, - 0x34a310, - 0x354b52, - 0x355d4c, - 0x35640d, - 0x35674c, - 0x359951, - 0x35a80d, - 0x35d58d, - 0x35db8a, - 0x35de0c, - 0x35f14c, - 0x36018c, - 0x360b4c, - 0x363f13, - 0x364690, - 0x364a90, - 0x36564d, - 0x365c4c, - 0x366dc9, - 0x36908d, - 0x3693d3, - 0x369e91, - 0x36a2d3, - 0x36ae8f, - 0x36b24c, - 0x36b54f, - 0x36b90d, - 0x36bf0f, - 0x36c2d0, - 0x36cd4e, - 0x37050e, - 0x370a90, - 0x37168d, - 0x37200e, - 0x37238c, - 0x373353, - 0x375c4e, - 0x3762d0, - 0x3766d1, - 0x376b0f, - 0x376ed3, - 0x37878d, - 0x378acf, - 0x378e8e, - 0x379550, - 0x379949, - 0x37ab90, - 0x37b18f, - 0x37b80f, - 0x37bbd2, - 0x37cd8e, - 0x37d78d, - 0x37e30d, - 0x37e64d, - 0x37f64d, - 0x37f98d, - 0x37fcd0, - 0x3800cb, - 0x38078c, - 0x380b0c, - 0x38110c, - 0x38140e, - 0x391c90, - 0x393712, - 0x393b8b, - 0x393ece, - 0x39424e, - 0x394ace, - 0x394f4b, - 0x59f95456, - 0x395c4d, - 0x3967d4, - 0x39754d, - 0x3993d5, - 0x39a8cd, - 0x39b24f, - 0x39b8cf, - 0x39d98f, - 0x39dd4e, - 0x39e2cd, - 0x3a0591, - 0x3a27cc, - 0x3a2acc, - 0x3a2dcb, - 0x3a354c, - 0x3a3ccf, - 0x3a4092, - 0x3a468d, - 0x3a578c, - 0x3a608c, - 0x3a638d, - 0x3a66cf, - 0x3a6a8e, - 0x3a9a0c, - 0x3a9fcd, - 0x3aa30b, - 0x3aad8c, - 0x3ab68d, - 0x3ab9ce, - 0x3abd49, - 0x3ad053, - 0x3adc8d, - 0x3ae38d, - 0x3ae98c, - 0x3aee0e, - 0x3afc4f, - 0x3b000c, - 0x3b030d, - 0x3b064f, - 0x3b0a0c, - 0x3b100c, - 0x3b138c, - 0x3b168c, - 0x3b1d4d, - 0x3b2092, - 0x3b320c, - 0x3b350c, - 0x3b3811, - 0x3b3c4f, - 0x3b400f, - 0x3b43d3, - 0x3b514e, - 0x3b54cf, - 0x3b588c, - 0x5a3b5bce, - 0x3b5f4f, - 0x3b6316, - 0x3b7e52, - 0x3ba34c, - 0x3bae4f, - 0x3bb4cd, - 0x3c3d8f, - 0x3c414c, - 0x3c444d, - 0x3c478d, - 0x3c70ce, - 0x3c870c, - 0x3cabcc, - 0x3caed0, - 0x3cd451, - 0x3cd88b, - 0x3cdccc, - 0x3cdfce, - 0x3d0ed1, - 0x3d130e, - 0x3d168d, - 0x3d598b, - 0x3d648f, - 0x3d7094, - 0x24cc42, - 0x24cc42, - 0x225e83, - 0x24cc42, - 0x225e83, - 0x24cc42, - 0x2013c2, - 0x24b885, - 0x3d0bcc, - 0x24cc42, - 0x24cc42, - 0x2013c2, - 0x24cc42, - 0x2a30c5, - 0x2ba185, - 0x24cc42, - 0x24cc42, - 0x200302, - 0x2a30c5, - 0x340c49, - 0x369b8c, - 0x24cc42, - 0x24cc42, - 0x24cc42, - 0x24cc42, - 0x24b885, - 0x24cc42, - 0x24cc42, - 0x24cc42, - 0x24cc42, - 0x200302, - 0x340c49, - 0x24cc42, - 0x24cc42, - 0x24cc42, - 0x2ba185, - 0x24cc42, - 0x2ba185, - 0x369b8c, - 0x3d0bcc, - 0x24dd03, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x4bc8, - 0x730c4, - 0x1ba03, - 0x1d5308, - 0x200742, - 0x5b204502, - 0x2437c3, - 0x243544, - 0x212503, - 0x3b7c84, - 0x22fac6, - 0x2103c3, - 0x309b84, - 0x2d6d45, - 0x20e403, - 0x21c103, - 0x75003, - 0x201ac3, - 0x21a70a, - 0x25e4c6, - 0x3945cc, - 0xb2b48, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x228c03, - 0x2e3e86, - 0x21c103, - 0x201ac3, - 0x214903, - 0xb31c8, - 0xfe4c5, - 0xec89, - 0x9682, - 0x5c7c7b05, - 0xfe4c5, - 0x163b47, - 0x74a88, - 0x1d754e, - 0x95e52, - 0x13ed8b, - 0x10bc06, - 0x5ca99505, - 0x5ce9950c, - 0x18dc7, - 0x9a6c7, - 0xf530a, - 0x3cd10, - 0x7d05, - 0xbdf8b, - 0x97fc8, - 0x35687, - 0x1c96cb, - 0x4ba49, - 0x885c7, - 0x13e0c7, - 0x84a07, - 0x355c6, - 0x5c248, - 0x5d428906, - 0x4ec47, - 0xee5cd, - 0xf4cd0, - 0x5d810ac2, - 0xe388, - 0x42750, - 0x190acc, - 0x5df9170d, - 0x5f1c8, - 0x5f64b, - 0x71807, - 0x3e409, - 0x5b346, - 0xa2c48, - 0x5fec2, - 0xad5ca, - 0x6a947, - 0x7ec07, - 0xb3a89, - 0xb5508, - 0x13c2c5, - 0x1922c6, - 0x137e46, - 0xfd28e, - 0x38f8e, - 0x14984f, - 0x3a3c9, - 0x7acc9, - 0x9ab4b, - 0xb118f, - 0x16828c, - 0xc4d8b, - 0xe3288, - 0x14e5c7, - 0x16d508, - 0x19a14b, - 0x19f64c, - 0x1a38cc, - 0xbb74c, - 0xbba4d, - 0x43448, - 0xf6782, - 0x197009, - 0x15fc08, - 0x17110b, - 0xd4546, - 0xde88b, - 0x14714b, - 0xe964a, - 0xea205, - 0xef890, - 0xf1c46, - 0x6cd06, - 0x148e45, - 0x174407, - 0x1c5008, - 0xf7407, - 0xf76c7, - 0x10a947, - 0x1083ca, - 0xb29ca, - 0xdc886, - 0xa16cd, - 0x4ed08, - 0x116bc8, - 0xcb0c9, - 0xc3a05, - 0x107f0c, - 0xbbc4b, - 0x10fa84, - 0x111949, - 0x111b86, - 0x50186, - 0x121906, - 0x1882, - 0x107146, - 0x290b, - 0x11ddc7, - 0x74c2, - 0xd6685, - 0x72cc4, - 0x781, - 0x68cc3, - 0x5d278a06, - 0xa2fc3, - 0x1382, - 0x6304, - 0x602, - 0x56c4, - 0x1782, - 0x3782, - 0xf02, - 0x129902, - 0x5382, - 0x99502, - 0xd82, - 0x192ac2, - 0x36f02, - 0x1482, - 0x46c2, - 0x979c2, - 0x32ec3, - 0x43c2, - 0x1d42, - 0x1cd02, - 0xc542, - 0x40c2, - 0x31242, - 0x58e82, - 0x1d02, - 0xd282, - 0x1582, - 0x13303, - 0xbc2, - 0x2282, - 0x4e2c2, - 0x53a82, - 0x8242, - 0xd642, - 0x8ec2, - 0x75d42, - 0x2bc2, - 0x7f742, - 0x728c2, - 0x9f502, - 0x1c103, - 0x1a02, - 0x4ffc2, - 0x2fc2, - 0x7482, - 0x1c1685, - 0xa482, - 0x31c2, - 0x40203, - 0x4102, - 0x1202, - 0xc02, - 0xfd02, - 0x11202, - 0x4342, - 0x73c2, - 0x1882, - 0xe585, - 0x5e2013c2, - 0x5e720f83, - 0x3643, - 0x5ea013c2, - 0x3643, - 0x8ef87, - 0x200943, - 0x200742, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x2019c3, - 0x228c03, - 0x21c103, - 0x21ba03, - 0x201ac3, - 0x2a3003, - 0x8783, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x20e403, - 0x21c103, - 0x21ba03, - 0x75003, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x200541, - 0x20e403, - 0x21c103, - 0x252043, - 0x201ac3, - 0xa204, - 0x24dd03, - 0x22cc43, - 0x232ec3, + 0x212103, + 0x215e08, 0x20e383, - 0x21fe83, - 0x252083, - 0x23fc43, - 0x2b6003, - 0x201383, - 0x215e43, - 0x21f504, - 0x21c103, - 0x201ac3, - 0x202903, - 0x2068c4, - 0x253583, - 0x29a43, - 0x3ad5c3, - 0x330048, - 0x32cac4, - 0x203c8a, - 0x239bc6, - 0x122a44, - 0x369847, - 0x21b38a, - 0x224789, - 0x395987, - 0x3a7d4a, - 0x24dd03, - 0x31a24b, - 0x2012c9, - 0x2d8e85, - 0x201cc7, - 0x4502, - 0x22cc43, - 0x212dc7, - 0x279805, - 0x2d0dc9, - 0x232ec3, - 0x321346, - 0x2ce783, - 0xf3883, - 0x11cc86, - 0x9546, - 0x10347, - 0x220d06, - 0x229e45, - 0x3c3547, - 0x317987, - 0x61215e43, - 0x355f87, - 0x321a03, - 0x246e05, - 0x21f504, - 0x275508, - 0x37d48c, - 0x2bd405, - 0x2afb46, - 0x212c87, - 0x3cd147, - 0x243607, - 0x253788, - 0x318f8f, - 0x2249c5, - 0x2438c7, - 0x3bf787, - 0x2b210a, - 0x2f2949, - 0x31cdc5, - 0x31ffca, - 0x81446, - 0xc3ec7, - 0x2ce805, - 0x393dc4, - 0x26f7c6, - 0xeb8c6, - 0x390d47, - 0x2f6687, - 0x38e008, - 0x21c845, - 0x279706, - 0x73348, - 0x323c85, - 0x123e46, - 0x234e45, - 0x274004, - 0x22a4c7, - 0x31ac8a, - 0x23c2c8, - 0x3793c6, - 0x28c03, - 0x2eb3c5, - 0x353646, - 0x39d246, - 0x348d46, - 0x20e403, - 0x3a4907, - 0x3bf705, - 0x21c103, - 0x2e990d, - 0x21ba03, - 0x38e108, - 0x37c444, - 0x284445, - 0x2b2006, - 0x32b786, - 0x2b3487, - 0x2b6047, - 0x298845, - 0x201ac3, - 0x34e6c7, - 0x23e589, - 0x26cf49, - 0x3cbd8a, - 0x247502, - 0x246dc4, - 0x2f1ec4, - 0x2f6547, - 0x2f6a08, - 0x2f8d49, - 0x21b689, - 0x2f9c87, - 0x105fc9, - 0x33a8c6, - 0xfd006, - 0x2ff404, - 0x2ffa0a, - 0x302248, - 0x302bc9, - 0x3ac686, - 0x2c0085, - 0x23c188, - 0x2d498a, - 0x27be03, - 0x206a46, - 0x2f9d87, - 0x22f445, - 0x37c305, - 0x25d6c3, - 0x2769c4, - 0x2250c5, - 0x293707, - 0x3007c5, - 0x30f386, - 0x1121c5, - 0x291443, - 0x3cecc9, - 0x28420c, - 0x2c278c, - 0x2de688, - 0x2b1007, - 0x30b988, - 0x10cec7, - 0x30d58a, - 0x30dc4b, - 0x201408, - 0x32b888, - 0x235cc6, - 0x2022c5, - 0x202f0a, - 0x320fc5, - 0x202b82, - 0x2d2f07, - 0x252346, - 0x37a305, - 0x30fd89, - 0x38f385, - 0x3893c5, - 0x38f789, - 0x353586, - 0x3a8448, - 0x246ec3, - 0x20ab86, - 0x283506, - 0x31fdc5, - 0x31fdc9, - 0x2f9489, - 0x28ba47, - 0x11fc44, - 0x31fc47, - 0x21b589, - 0x236045, - 0x3a8c8, - 0x33f3c5, - 0x3779c5, - 0x27d2c9, - 0x203642, - 0x3cf5c4, - 0x200d42, - 0x200bc2, - 0x2e1285, - 0x3227c8, - 0x2c3945, - 0x2d1d43, - 0x2d1d45, - 0x2e0b83, - 0x20a342, - 0x328a04, - 0x2b4cc3, - 0x208702, - 0x38b344, - 0x2f2443, - 0x202e42, - 0x2c39c3, - 0x30c284, - 0x303183, - 0x260c44, - 0x208a82, - 0x214803, - 0x220c43, - 0x204f42, - 0x27dd02, - 0x2f92c9, - 0x201142, - 0x296984, - 0x200442, - 0x23c004, - 0x33a884, - 0x202dc4, - 0x201882, - 0x235902, - 0x233803, - 0x287303, - 0x234f44, - 0x24a104, - 0x2da5c4, - 0x2f9684, - 0x31e5c3, - 0x3341c3, - 0x2813c4, - 0x322184, - 0x3222c6, - 0x21c1c2, - 0x4502, - 0x442c3, - 0x204502, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x200742, - 0x24dd03, - 0x22cc43, - 0x232ec3, - 0x202443, - 0x215e43, - 0x21f504, - 0x2f9584, - 0x221904, - 0x21c103, - 0x201ac3, - 0x214903, - 0x300184, - 0x331903, - 0x2b4503, - 0x37da44, - 0x33f1c6, - 0x226c43, - 0xfe4c5, - 0x9a6c7, - 0x23dd83, - 0x62ba9808, - 0x247f43, - 0x2bf843, - 0x246e43, - 0x228c03, - 0x27dd45, - 0x1c83, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x20a483, - 0x22edc3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x213303, - 0x21c103, - 0x251d44, - 0x75003, - 0x201ac3, - 0x281a84, - 0xfe4c5, - 0x2cb745, - 0x9a6c7, - 0x204502, - 0x202a02, - 0x201382, - 0x2015c2, - 0x1ba03, - 0x200342, - 0x6f544, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x221904, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x203583, - 0x2056c4, - 0xb2b48, - 0x22cc43, - 0x21ba03, - 0x8783, - 0x156c44, - 0x24fc04, - 0xb2b48, - 0x22cc43, - 0x251344, - 0x21f504, - 0x21ba03, - 0x2052c2, - 0x75003, - 0x201ac3, - 0x202ac3, - 0x769c4, - 0x383305, - 0x202b82, - 0x202883, - 0x80249, - 0xe6f06, - 0x81588, - 0x200742, - 0xb2b48, - 0x204502, - 0x232ec3, - 0x215e43, - 0x201582, - 0x1ba03, - 0x201ac3, - 0xc682, - 0x200742, - 0x1a7f07, - 0x12c8c9, - 0x883, - 0xb2b48, - 0x1b2dc3, - 0x66361147, - 0x2cc43, - 0x1d3608, - 0x232ec3, - 0x215e43, - 0x3f446, - 0x213303, - 0x9f448, - 0xcdf48, - 0x2bb06, - 0x20e403, - 0xd81c8, - 0x10d443, - 0x664eab46, - 0xf0685, - 0x330c7, - 0x1c103, - 0x978c3, - 0x1ac3, - 0xe42, - 0x19fd4a, - 0x188c3, - 0xe1343, - 0x205884, - 0x118d8b, - 0x119348, - 0x9e002, - 0x1458987, - 0x146edc7, - 0x14d1e08, - 0x15622c3, - 0x7f0cb, - 0x133507, - 0x200742, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x2e4e84, - 0x215e43, - 0x213303, - 0x20e403, - 0x21c103, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x228c03, - 0x21c103, - 0x201ac3, - 0x200e83, - 0x203583, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x8783, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x228c03, - 0x21c103, - 0x201ac3, - 0x25efc2, - 0x200101, - 0x200742, - 0x200301, - 0x342942, - 0xb2b48, - 0x219845, - 0x200781, - 0x2cc43, - 0x200a81, - 0x200041, - 0x200141, - 0x24b802, - 0x388a44, - 0x24b803, - 0x200a01, - 0x200dc1, - 0x200541, - 0x2026c1, - 0x2fe347, - 0x30f4cf, - 0x30adc6, - 0x200641, - 0x356c86, - 0x200081, - 0x2001c1, - 0x3b0c8e, - 0x200341, - 0x201ac3, - 0x200e41, - 0x238d85, - 0x200e42, - 0x25d5c5, - 0x2002c1, - 0x200c01, - 0x200401, - 0x202b82, - 0x200441, - 0x202881, - 0x209841, - 0x200cc1, - 0x201441, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x2153c3, - 0x22cc43, - 0x215e43, - 0x9df48, - 0x20e403, - 0x21c103, - 0x75283, - 0x201ac3, - 0x14f3988, - 0xa388, - 0xfe4c5, - 0xb2b48, - 0x1ba03, - 0xfe4c5, - 0xf4c44, - 0x49844, - 0x14f398a, - 0xb2b48, - 0x75003, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21c103, - 0x201ac3, - 0x229a43, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x2e4e84, - 0x201ac3, - 0x28c285, - 0x351b04, - 0x22cc43, - 0x21c103, - 0x201ac3, - 0xb32ca, - 0x102604, - 0x1263c6, - 0x204502, - 0x22cc43, - 0x230a09, - 0x232ec3, - 0x360909, - 0x215e43, - 0x20e403, - 0x21c103, - 0x563c4, - 0x1ba03, - 0x201ac3, - 0x2ff208, - 0x240787, - 0x383305, - 0x1cdac8, - 0x1a7f07, - 0xf6c8a, - 0x114a0b, - 0x156ec7, - 0x418c8, - 0x13e58a, - 0x12748, - 0x12c8c9, - 0x24f87, - 0x162f47, - 0x7f688, - 0x1d3608, - 0x43b8f, - 0x219c5, - 0x1d3907, - 0x3f446, - 0x97807, - 0x11cf06, - 0x9f448, - 0xb6986, - 0x153387, - 0x18e9c9, - 0x1b2f87, - 0x175a09, - 0xc43c9, - 0xcb4c6, - 0xcdf48, - 0xcc985, - 0x8814a, - 0xd81c8, - 0x10d443, - 0xe10c8, - 0x330c7, - 0x80045, - 0x614d0, - 0x978c3, - 0x75003, - 0x18e847, - 0x23fc5, - 0xf79c8, - 0x6be45, - 0xe1343, - 0x6fb88, - 0x7d186, - 0xb9489, - 0xb8987, - 0x8050b, - 0x10f044, - 0x1112c4, - 0x118d8b, - 0x119348, - 0x11cb87, - 0xfe4c5, - 0x22cc43, - 0x232ec3, - 0x21fe83, - 0x201ac3, - 0x2029c3, - 0x215e43, - 0x75003, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x9ac8b, - 0x200742, - 0x204502, - 0x201ac3, - 0xb2b48, - 0x4502, - 0x200742, - 0x204502, - 0x201382, - 0x201582, - 0x205102, - 0x21c103, - 0x18b546, - 0x200342, - 0x769c4, - 0x200742, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x201382, - 0x215e43, - 0x213303, - 0x20e403, - 0x221904, - 0x21c103, - 0x201bc3, - 0x1ba03, - 0x201ac3, - 0x205884, - 0x202903, - 0x215e43, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x21ba03, - 0x201ac3, - 0x3ba807, - 0x22cc43, - 0x28a707, - 0x366646, - 0x203503, - 0x21cd03, - 0x215e43, - 0x219203, - 0x21f504, - 0x3a7184, - 0x2e5d06, - 0x2032c3, - 0x21c103, - 0x201ac3, - 0x28c285, - 0x2d0384, - 0x2f5803, - 0x3ccf83, - 0x2d2f07, - 0x33cec5, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x59b87, - 0x174407, - 0x1a2685, - 0x206e02, - 0x24ee43, - 0x21e743, - 0x24dd03, - 0x6fa2cc43, - 0x205fc2, - 0x232ec3, - 0x212503, - 0x215e43, - 0x21f504, - 0x2026c3, - 0x2249c3, - 0x20e403, - 0x221904, - 0x6fe047c2, - 0x21c103, - 0x201ac3, - 0x231303, - 0x213383, - 0x25efc2, - 0x202903, - 0xb2b48, - 0x215e43, - 0x8783, - 0x3321c4, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x236384, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x213303, - 0x33b104, - 0x21af04, - 0x2e3e86, - 0x221904, - 0x21c103, - 0x201ac3, - 0x214903, - 0x252346, - 0x3aecb, - 0x28906, - 0x1cfbca, - 0x11e24a, - 0xb2b48, - 0x273304, - 0x7122cc43, - 0x26e184, - 0x232ec3, - 0x23e404, - 0x215e43, - 0x33c583, - 0x20e403, - 0x21c103, - 0x75003, - 0x201ac3, - 0xf243, - 0x35148b, - 0x3c4aca, - 0x3d818c, - 0xeb148, - 0x200742, - 0x204502, - 0x201382, - 0x22e005, - 0x21f504, - 0x202bc2, - 0x20e403, - 0x21af04, - 0x2015c2, - 0x200342, - 0x203582, - 0x25efc2, - 0x4dd03, - 0xecc2, - 0x2c8289, - 0x225308, - 0x215cc9, - 0x226989, - 0x22798a, - 0x31baca, - 0x214742, - 0x392ac2, - 0x4502, - 0x22cc43, - 0x233782, - 0x243a86, - 0x37b682, - 0x206242, - 0x314d8e, - 0x21484e, - 0x28de07, - 0x220507, - 0x255502, - 0x232ec3, - 0x215e43, - 0x221582, - 0x201582, - 0x1cc83, - 0x23658f, - 0x243dc2, - 0x2bcec7, - 0x3308c7, - 0x2bfbc7, - 0x2d28cc, - 0x2e5f8c, - 0x363544, - 0x3a0c0a, - 0x214782, - 0x253a82, - 0x2c5c04, - 0x204182, - 0x2981c2, - 0x2e61c4, + 0xba1c742, + 0x247308, + 0x37868b, + 0x220808, + 0x221346, + 0x221e87, + 0x225088, + 0xca07c02, + 0xcf25802, + 0x30b488, + 0x219047, + 0x314885, + 0x314888, + 0xd2bdcc8, + 0x2d4803, + 0x228bc4, + 0x389bc2, + 0xd629c02, + 0xda43fc2, + 0xe22b882, + 0x22b883, + 0xe605cc2, + 0x30f943, + 0x239944, + 0x212283, + 0x3cbd04, + 0x30ab0b, + 0x23af03, + 0x2ea246, + 0x23af04, + 0x2b920e, + 0x381c85, + 0x3a7c48, + 0x235dc7, + 0x235dca, + 0x226e43, + 0x3ac007, + 0x2580c5, + 0x22fc84, + 0x256786, + 0x256787, + 0x312944, + 0x22f5c7, + 0xea1f604, + 0x398b44, + 0x398b46, + 0x25b444, + 0x3c4e86, + 0x20b383, + 0x3d1dc8, + 0x20b388, + 0x2655c3, + 0x2ee4c3, + 0x343dc4, + 0x353ec3, + 0xf235d82, + 0xf68d142, + 0x208183, + 0x242d46, + 0x28ed83, + 0x23ab04, + 0xfa17b02, + 0x308183, + 0x217b03, 0x212f82, - 0x208242, - 0x23643, - 0x2b6a07, - 0x23be45, - 0x208ec2, - 0x297784, - 0x27f742, - 0x2eacc8, - 0x21c103, - 0x37a688, - 0x200ac2, - 0x363705, - 0x399ec6, - 0x201ac3, - 0x20a482, - 0x2f8f87, - 0xe42, - 0x25e745, - 0x32eec5, - 0x205a82, - 0x204982, - 0x3bd94a, - 0x2986ca, - 0x293202, - 0x2a5bc4, - 0x202582, - 0x246c88, - 0x208c02, - 0x29ed48, - 0x3157c7, - 0x316009, - 0x25e7c2, - 0x31d445, - 0x3b6c85, - 0x21c90b, - 0x2d564c, - 0x22a288, - 0x333348, - 0x21c1c2, - 0x2b3542, - 0x200742, - 0xb2b48, - 0x204502, - 0x22cc43, - 0x201382, - 0x2015c2, - 0x1ba03, - 0x200342, - 0x201ac3, - 0x203582, - 0x200742, - 0xfe4c5, - 0x72604502, - 0x72e15e43, - 0x223643, - 0x202bc2, - 0x21c103, - 0x2fec43, - 0x73201ac3, - 0x2f5d43, - 0x28f086, - 0x1603583, - 0xfe4c5, - 0x18b40b, - 0xb2b48, - 0x72a02508, - 0x62a07, - 0x74887, - 0x148e45, - 0xb5c0d, - 0x3f242, - 0x119882, - 0xb3f4a, - 0x98507, - 0x29884, - 0x298c3, - 0x121984, - 0x73a07502, - 0x73e00602, - 0x74200282, - 0x74604442, - 0x74a13b82, - 0x74e05382, - 0x9a6c7, - 0x75204502, - 0x75602b42, - 0x75a0e682, - 0x75e046c2, - 0x214843, - 0x16284, - 0x2339c3, - 0x76210f02, - 0x5f1c8, - 0x76600a02, - 0x784c7, - 0x76a03ac2, - 0x76e00dc2, - 0x77200542, - 0x77605142, - 0x77a0d282, - 0x77e01582, - 0xd8dc5, - 0x2265c3, - 0x33e044, - 0x78204182, - 0x78616d02, - 0x78a00682, - 0x8968b, - 0x78e000c2, - 0x79651402, - 0x79a02bc2, - 0x79e05102, - 0x7a21c0c2, - 0x7a608302, - 0x7aa02c42, - 0x7ae728c2, - 0x7b2047c2, - 0x7b606142, - 0x7ba015c2, - 0x7be0b602, - 0x7c249002, - 0x7c615f82, - 0x12ba04, - 0x34ce03, - 0x7ca34342, - 0x7ce14482, - 0x7d212ac2, - 0x7d604142, - 0x7da00342, - 0x7de08702, - 0x9ae07, - 0x7e213282, - 0x7e600502, - 0x7ea03582, - 0x7ee085c2, - 0x107f0c, - 0x7f209702, - 0x7f622bc2, - 0x7fa08002, - 0x7fe06e42, - 0x80208f02, - 0x80627b02, - 0x80a076c2, - 0x80e10402, - 0x81283882, - 0x81669e02, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x25883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x792026c3, - 0x225883, - 0x27ddc4, - 0x225206, - 0x3040c3, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x200189, - 0x20ecc2, - 0x3d0143, - 0x2c46c3, - 0x204845, - 0x212503, - 0x2026c3, - 0x225883, - 0x2ba883, - 0x239283, - 0x3b26c9, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x20ecc2, - 0x20ecc2, - 0x2026c3, - 0x225883, - 0x81e2cc43, - 0x232ec3, - 0x226bc3, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0xb2b48, - 0x204502, - 0x22cc43, - 0x21c103, - 0x201ac3, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x20e403, - 0x21c103, - 0x1ba03, - 0x201ac3, - 0x24fc04, - 0x204502, - 0x22cc43, - 0x280c83, - 0x232ec3, - 0x251344, - 0x21fe83, - 0x215e43, - 0x21f504, - 0x213303, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x202ac3, - 0x383305, - 0x239283, - 0x202903, - 0x1ba03, - 0x204502, - 0x22cc43, - 0x2026c3, - 0x21c103, - 0x201ac3, - 0x200742, - 0x24dd03, - 0xb2b48, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x22fac6, - 0x21f504, - 0x213303, - 0x221904, - 0x21c103, - 0x201ac3, - 0x214903, - 0x22cc43, - 0x232ec3, - 0x21c103, - 0x201ac3, - 0x1450bc7, - 0x1c3bc7, - 0x22cc43, - 0x28906, - 0x232ec3, - 0x215e43, - 0xed586, - 0x21c103, - 0x201ac3, - 0x32fec8, - 0x333189, - 0x34bac9, - 0x353c08, + 0xfe014c2, + 0x2c5006, + 0x234f87, + 0x275487, + 0x209e85, + 0x396d84, + 0x29b045, + 0x23f907, + 0x2eb4c9, + 0x2fed86, + 0x300c48, + 0x3109c6, + 0x1022ec82, + 0x3019c8, + 0x3037c6, + 0x2d4b85, + 0x321b07, + 0x323144, + 0x323145, + 0x10731a84, + 0x331a88, + 0x10a0a602, + 0x10e00482, + 0x30c486, + 0x200488, + 0x358345, + 0x359946, + 0x35e748, + 0x37c508, + 0x11205f85, + 0x11625344, + 0x2448c7, + 0x11a07a42, + 0x11ed5e42, + 0x13202782, + 0x3b8ac5, + 0x2a5f45, + 0x377c46, + 0x3a0ec7, + 0x22c487, + 0x13a2d7c3, + 0x2df287, + 0x348dc8, + 0x1da2d989, + 0x26de47, + 0x22de07, + 0x22e808, + 0x22f006, + 0x22f786, + 0x230bcc, + 0x23230a, + 0x232c87, + 0x23418b, + 0x234dc7, + 0x234dce, + 0x1de35c44, + 0x236204, + 0x239807, + 0x260147, + 0x23c4c6, + 0x23c4c7, + 0x337307, + 0x1e22bdc2, + 0x23de06, + 0x23de0a, + 0x23e20b, + 0x23fec7, + 0x240945, + 0x2414c3, + 0x241b06, + 0x241b07, + 0x272803, + 0x1e600102, + 0x24238a, + 0x1eb76cc2, + 0x1ee487c2, + 0x1f247002, + 0x1f636d82, + 0x247745, + 0x248484, + 0x1fe37982, + 0x250c45, + 0x231543, + 0x2080c5, + 0x204a44, + 0x20bc84, + 0x21f906, + 0x27f946, + 0x2a7843, + 0x3ba9c4, + 0x275783, + 0x20e02942, + 0x222204, + 0x244e46, + 0x222205, + 0x2576c6, + 0x321c08, + 0x28fd84, + 0x2102c8, + 0x39fa05, + 0x39f748, + 0x2bef86, + 0x359d87, + 0x26ec04, + 0x2226ec06, + 0x22645dc3, + 0x39cbc3, + 0x348188, + 0x332c04, + 0x22b5ed87, + 0x232de7c6, + 0x2de7c9, + 0x336088, + 0x38ca48, + 0x34a204, + 0x3c2b83, + 0x23e8c2, + 0x23652282, + 0x23a03e02, + 0x3c7983, + 0x23e12ac2, + 0x2f0a04, + 0x36f146, + 0x309cc5, + 0x21b1c3, + 0x2b5f07, + 0x3306c3, + 0x338108, + 0x214ec5, + 0x25cdc3, + 0x2e1985, + 0x2e1ac4, + 0x3034c6, + 0x217004, + 0x217b86, + 0x219846, + 0x206804, + 0x235183, + 0x2420d602, + 0x2479e645, + 0x200843, + 0x24e16042, + 0x22d943, + 0x246385, + 0x25233743, + 0x25a33749, + 0x25e00942, + 0x26605242, + 0x28ca45, + 0x213986, + 0x20da06, + 0x2d0f48, + 0x2d0f4b, + 0x32dc4b, + 0x20a085, + 0x2cc809, + 0x1601982, + 0x2e8e88, + 0x21f084, + 0x26e01242, + 0x337943, + 0x27660306, + 0x27db08, + 0x27a01f02, + 0x310588, + 0x27e758c2, + 0x33f30a, + 0x282d2003, + 0x28b75646, + 0x399608, + 0x315848, + 0x3c0b46, + 0x386d47, + 0x239587, + 0x255b4a, + 0x38b184, + 0x35d884, + 0x374a49, + 0x28fabc05, + 0x205d86, + 0x219243, + 0x271e84, + 0x29202404, + 0x202407, + 0x29757a47, + 0x26e4c4, + 0x378c45, + 0x377d08, + 0x3a4587, + 0x249487, + 0x29a19d02, + 0x3c3844, + 0x293548, + 0x24aa44, + 0x24e444, + 0x24e805, + 0x24e947, + 0x29e4dbc9, + 0x250104, + 0x250f49, + 0x251188, + 0x251984, + 0x251987, + 0x2a252083, + 0x252747, + 0x1603582, + 0x16b0f82, + 0x253946, + 0x253fc7, + 0x254244, + 0x255047, + 0x256bc7, + 0x257843, + 0x2b06c2, + 0x20c742, + 0x2747c3, + 0x3be744, + 0x3be74b, + 0x2a6747c8, + 0x25c784, + 0x258ec5, + 0x25a687, + 0x25bec5, + 0x2e0b8a, + 0x25c6c3, + 0x2aa0e282, + 0x20e284, + 0x25ff09, + 0x263f83, + 0x264047, + 0x38c6c9, + 0x3d77c8, + 0x238983, + 0x27cb87, + 0x27dfc9, + 0x23fac3, + 0x2872c4, + 0x288c09, + 0x28ab06, + 0x219c03, + 0x205282, + 0x236883, + 0x2b0d87, + 0x236885, + 0x3cb4c6, + 0x2aea44, + 0x302fc5, + 0x279d03, + 0x212346, + 0x237482, + 0x24ce44, + 0x2ae0a1c2, + 0x2b22b083, + 0x2b604182, + 0x24c203, + 0x2115c4, + 0x2115c7, + 0x38b206, + 0x2023c2, + 0x2ba02382, + 0x321e04, + 0x2be0c602, + 0x2c212782, + 0x246644, + 0x246645, + 0x3cae05, + 0x365f46, + 0x2c609d82, + 0x360245, + 0x3c53c5, + 0x2270c3, + 0x211746, + 0x21c105, + 0x225782, + 0x357f85, + 0x225784, + 0x226203, + 0x228d03, + 0x2ca05142, + 0x233b47, + 0x251b04, + 0x251b09, + 0x271d84, + 0x28d503, 0x39bf48, - 0x39bf49, - 0x32740a, - 0x366b4a, - 0x39788a, - 0x39ca0a, - 0x3c4aca, - 0x3d288b, - 0x2483cd, - 0x37524f, - 0x276bd0, - 0x368c0d, - 0x380e0c, - 0x39c74b, - 0x74a88, - 0x112b88, - 0x1668c5, - 0x1494887, - 0xd6685, - 0x200742, - 0x33cd05, - 0x208203, - 0x85604502, - 0x232ec3, - 0x215e43, - 0x397387, - 0x246e43, - 0x20e403, - 0x21c103, - 0x252043, - 0x20f683, - 0x21ba03, - 0x201ac3, - 0x25e4c6, + 0x2cea5dc4, + 0x2a5dc6, + 0x2ab3c3, + 0x259703, + 0x220583, + 0x2d2ee042, + 0x300002, + 0x2d600642, + 0x33cd88, + 0x220108, + 0x3b1646, + 0x25c585, + 0x22c045, + 0x201887, + 0x2da78745, + 0x2068c2, + 0x2de96bc2, + 0x2e200042, + 0x31ed08, + 0x301905, + 0x2f5f44, + 0x257605, + 0x24a487, + 0x273244, + 0x242282, + 0x2e605002, + 0x34e6c4, + 0x221807, + 0x28f307, + 0x351604, + 0x3ced83, + 0x265504, + 0x265508, + 0x22fac6, + 0x25660a, + 0x3575c4, + 0x295548, + 0x28af44, + 0x221f86, + 0x296b84, + 0x3b8dc6, + 0x251dc9, + 0x245847, + 0x21f183, + 0x2ea07102, + 0x34a483, + 0x208402, + 0x2ee01d02, + 0x2f3206, + 0x380e08, + 0x2a7747, + 0x22a1c9, + 0x295109, + 0x2a8c85, + 0x2aa589, + 0x2aad45, + 0x2aae89, + 0x2abe05, + 0x2ac848, + 0x2f20c644, + 0x2f657987, + 0x22e1c3, + 0x2aca47, + 0x22e1c6, + 0x2ace87, + 0x2a48c5, + 0x2ba0c3, + 0x2fa320c2, + 0x20b2c4, + 0x2fe2bf42, + 0x302373c2, + 0x33c146, + 0x206205, + 0x2af987, + 0x32f343, + 0x363944, + 0x203f43, + 0x2c6883, + 0x306067c2, + 0x30e03d82, + 0x389c44, + 0x36b103, + 0x2fc5c5, + 0x31205e42, + 0x31a00bc2, + 0x2da6c6, + 0x332d44, + 0x321644, + 0x32164a, + 0x322005c2, + 0x244b03, + 0x2157ca, + 0x219c88, + 0x32622884, + 0x2005c3, + 0x32a038c3, + 0x281709, + 0x252d49, + 0x2b6006, + 0x32e19e43, + 0x21c445, + 0x31de8d, + 0x219e46, + 0x21bccb, + 0x33204c02, + 0x2b2c48, + 0x36215f02, + 0x36604c82, + 0x375e05, + 0x36a01b82, + 0x230047, + 0x2adec7, + 0x204383, + 0x341788, + 0x36e06102, + 0x3b9c84, + 0x219583, + 0x328085, + 0x23e906, + 0x220d44, + 0x2ee483, + 0x2b1e03, + 0x37202d42, + 0x20a004, + 0x3bc2c5, + 0x2b0987, + 0x27a143, + 0x2b1403, + 0x16b14c2, + 0x2b14c3, + 0x2b1d83, + 0x376035c2, + 0x3b7d44, + 0x27fb46, + 0x2e6343, + 0x2b22c3, + 0x37a4d442, + 0x24d448, + 0x2b3204, + 0x368486, + 0x25d187, + 0x29b3c6, + 0x36f744, + 0x45a015c2, + 0x22e08b, + 0x2f90ce, + 0x21450f, + 0x2b0fc3, + 0x4625d602, + 0x1637542, + 0x46603882, + 0x295ac3, + 0x209503, + 0x21d046, + 0x2eb746, + 0x21ac87, + 0x30e184, + 0x46a13ac2, + 0x46e0a3c2, + 0x241385, + 0x2fa2c7, + 0x2b4ac6, + 0x47248702, + 0x32e844, + 0x2bab43, + 0x47653a42, + 0x47b70e03, + 0x2bbb44, + 0x2c0a89, + 0x47ec80c2, + 0x48203942, + 0x203945, + 0x486c8e02, + 0x48a06ac2, + 0x35be87, + 0x3b2349, + 0x37528b, + 0x239345, + 0x26a549, + 0x26d1c6, + 0x38f987, + 0x48e0e984, + 0x3d5849, + 0x37b387, + 0x20f607, + 0x22bb83, + 0x2b2ac6, + 0x32a947, + 0x20bec3, + 0x3ca646, + 0x4960ac02, + 0x49a339c2, + 0x3b5543, + 0x38aa85, + 0x21ee87, + 0x2eb846, + 0x236805, + 0x251304, + 0x2a3dc5, + 0x38bc44, + 0x49e00f82, + 0x274d87, + 0x2c5c44, + 0x23bf84, + 0x34998d, + 0x2d9189, + 0x22be88, + 0x203bc4, + 0x3b9445, + 0x20df07, + 0x210184, + 0x267b87, + 0x357285, + 0x4a214a04, + 0x2b4085, + 0x262c44, + 0x2b1a46, + 0x3a0cc5, + 0x4a624ec2, + 0x30c403, + 0x35cf44, + 0x35cf45, + 0x3520c6, + 0x236945, + 0x238904, + 0x34c603, + 0x4aa12a06, + 0x2676c5, + 0x282305, + 0x3a0dc4, + 0x2e5a43, + 0x2e5a4c, + 0x4aeb0a82, + 0x4b203502, + 0x4b600b42, + 0x214903, + 0x214904, + 0x4ba08002, + 0x37e508, + 0x3cb585, + 0x24b304, + 0x367a46, + 0x4be0f1c2, + 0x4c205e82, + 0x4c601442, + 0x28c045, + 0x2066c6, + 0x357984, + 0x216b06, + 0x371f86, + 0x210043, + 0x4cb4b2ca, + 0x271cc5, + 0x317c83, + 0x209b86, + 0x209b89, + 0x224207, + 0x2a4ec8, + 0x2fcb89, + 0x331688, + 0x226b86, + 0x218a03, + 0x4cedf302, + 0x3a1788, + 0x4d24ab82, + 0x4d6024c2, + 0x22a243, + 0x2e43c5, + 0x26ae44, + 0x211ec9, + 0x2e14c4, + 0x21a048, + 0x4de08443, + 0x4e30af84, + 0x2139c8, + 0x3498c7, + 0x4e65e5c2, + 0x23f1c2, + 0x32bbc5, + 0x265dc9, + 0x205e03, + 0x281304, + 0x31de44, + 0x20df83, + 0x2835ca, + 0x4ea01582, + 0x4ee0b102, + 0x2cb103, + 0x38e683, + 0x162d842, + 0x308a43, + 0x4f202dc2, + 0x4f600c02, + 0x4fb216c4, + 0x3dcb86, + 0x39ba06, + 0x226244, + 0x279343, + 0x3bb343, + 0x4fecb283, + 0x23e586, + 0x3a4dc5, + 0x2cc1c7, + 0x2cee45, + 0x2d0006, + 0x2d1208, + 0x2d1406, + 0x207304, + 0x29c1cb, + 0x2d6043, + 0x2d6045, + 0x2d6c88, + 0x2104c2, + 0x35c182, + 0x502477c2, + 0x50600e82, + 0x200e83, + 0x50a6cec2, + 0x26cec3, + 0x2d7683, + 0x51224682, + 0x516dc3c6, + 0x2594c6, + 0x51ab2e42, + 0x51e09002, + 0x52228d42, + 0x52645ec2, + 0x52a1a282, + 0x52e01342, + 0x20ed83, + 0x2c9e05, + 0x327d86, + 0x53205184, + 0x244c4a, + 0x3aa406, + 0x20c844, + 0x201c43, + 0x53e02a42, + 0x202642, + 0x22d903, + 0x54206b43, + 0x366547, + 0x3a0bc7, + 0x55ee7247, + 0x3cd307, + 0x227983, + 0x35fc8a, + 0x235fc4, + 0x31b684, + 0x31b68a, + 0x22c5c5, + 0x56205d42, + 0x255003, + 0x56600602, + 0x251ac3, + 0x34a443, + 0x56e00582, + 0x348d44, + 0x201a84, + 0x3bf805, + 0x322885, + 0x2aa2c6, + 0x2b6c06, + 0x5724fd42, + 0x576013c2, + 0x37a405, + 0x2591d2, + 0x34f1c6, + 0x24e703, + 0x304c46, + 0x2b4545, + 0x160a982, + 0x5fa0af02, + 0x3743c3, + 0x20af03, + 0x288883, + 0x5fe1a682, + 0x23d443, + 0x6060cc82, + 0x2a7503, + 0x3b7d88, + 0x2a8b03, + 0x2a8b06, + 0x32f7c7, + 0x324a06, + 0x324a0b, + 0x20c787, + 0x347f84, + 0x60e00e42, + 0x3cb405, + 0x61212b03, + 0x2050c3, + 0x28e805, + 0x332f43, + 0x61b32f46, + 0x2e900a, + 0x2a3083, + 0x2164c4, + 0x2003c6, + 0x2d4f86, + 0x61e3cf83, + 0x363807, + 0x281607, + 0x29dbc5, + 0x2ec406, + 0x267703, + 0x64a11983, + 0x64e01002, + 0x6533ef04, + 0x3c2249, + 0x3c7a05, + 0x22c244, + 0x34e0c8, + 0x2e6185, + 0x656e75c5, + 0x240ac9, + 0x201003, + 0x248744, + 0x65a02142, + 0x213d03, + 0x65e76402, + 0x276406, + 0x1678842, + 0x662201c2, + 0x28bf48, + 0x291f83, + 0x2b3fc7, + 0x2b1545, + 0x2b3b85, + 0x324c8b, + 0x2e8146, + 0x324e86, + 0x2e96c6, + 0x27f1c4, + 0x2c0c86, + 0x666d9d88, + 0x23afc3, + 0x23d903, + 0x23d904, + 0x38c084, + 0x316147, + 0x2ed4c5, + 0x66aed602, + 0x66e06a82, + 0x6761b085, + 0x2b8044, + 0x2daccb, + 0x2ef608, + 0x2525c4, + 0x67a2bd02, + 0x67e23802, + 0x3c4e03, + 0x2f15c4, + 0x2f1885, + 0x2f2247, + 0x2f5a84, + 0x351704, + 0x68213c42, + 0x37ab09, + 0x2f6bc5, + 0x239605, + 0x2f7745, + 0x68613c43, + 0x2f8644, + 0x2f864b, + 0x2f8984, + 0x2f8c4b, + 0x2f9c85, + 0x21464a, + 0x2fa7c8, + 0x2fa9ca, + 0x2fb203, + 0x2fb20a, + 0x68e0a0c2, + 0x69241f42, + 0x6961f4c3, + 0x69afed02, + 0x2fed03, + 0x69f52a42, + 0x6a33b402, + 0x2ffbc4, + 0x215f46, + 0x216845, + 0x300e43, + 0x32c306, + 0x216345, + 0x2e4a44, + 0x6a600902, + 0x2a1344, + 0x2cc48a, + 0x336fc7, + 0x3332c6, + 0x3abe47, + 0x23de43, + 0x2bbb88, + 0x37eb4b, + 0x2c12c5, + 0x2a9c05, + 0x2a9c06, + 0x2ec744, + 0x210f48, + 0x222b03, + 0x255ec4, + 0x255ec7, + 0x347bc6, + 0x3ccb06, + 0x2b904a, + 0x250fc4, + 0x2fba4a, + 0x6ab30086, + 0x330087, + 0x258f47, + 0x275dc4, + 0x275dc9, + 0x2ff605, + 0x3cc44b, + 0x2ee903, + 0x217d43, + 0x6ae1d583, + 0x2ca004, + 0x6b200682, + 0x229446, + 0x6b6b9e45, + 0x304e85, + 0x253b86, + 0x29fe44, + 0x6ba02542, + 0x241504, + 0x6be16f82, + 0x2d5745, + 0x32ffc4, + 0x6ca1b683, + 0x6ce01e82, + 0x201e83, + 0x237086, + 0x6d209482, + 0x391a48, + 0x224084, + 0x224086, + 0x38ef06, + 0x6d65a744, + 0x212985, + 0x225248, + 0x226087, + 0x246747, + 0x24674f, + 0x293446, + 0x231c83, + 0x23c644, + 0x20e4c3, + 0x2220c4, + 0x254144, + 0x6da02c02, + 0x28ce43, + 0x338dc3, + 0x6de02002, + 0x227683, + 0x2259c3, + 0x20dc0a, + 0x273b07, + 0x25984c, + 0x259b06, + 0x25c186, + 0x25ce87, + 0x6e22ec47, + 0x268049, + 0x247444, + 0x269ac4, + 0x6e600ec2, + 0x6ea01bc2, + 0x2b9406, + 0x363604, + 0x28d2c6, + 0x22f0c8, + 0x38ab44, + 0x230086, + 0x20d9c5, + 0x6ee83048, + 0x241c03, + 0x287a45, + 0x288203, + 0x239703, + 0x239704, + 0x20e243, + 0x6f24d882, + 0x6f601282, + 0x2ee7c9, + 0x28be45, + 0x28c144, + 0x317f05, + 0x297104, + 0x3a1fc7, + 0x36aac5, + 0x6fa3d804, + 0x23d808, + 0x2d9f46, + 0x2dcb04, + 0x2e1348, + 0x2e1c47, + 0x6fe037c2, + 0x2e8684, + 0x303104, + 0x2c1a07, + 0x70207c44, + 0x22b302, + 0x70603842, + 0x203843, + 0x203844, + 0x29e943, + 0x29e945, + 0x70a388c2, + 0x2fff05, + 0x2801c2, + 0x307d85, + 0x3b49c5, + 0x70e15042, + 0x217a84, + 0x71203002, + 0x25e406, + 0x2ba6c6, + 0x265f08, + 0x2c2988, + 0x33c0c4, + 0x305d85, + 0x3a6509, + 0x20a104, + 0x2e8fc4, + 0x206903, + 0x71655c85, + 0x243185, + 0x2a15c4, + 0x35248d, + 0x308102, + 0x353f43, + 0x354c83, + 0x71a02702, + 0x391505, + 0x220f87, + 0x2b9f44, + 0x3cd3c7, + 0x2fcd89, + 0x2cc5c9, + 0x202703, + 0x278688, + 0x2f9889, + 0x2f7a07, + 0x3da885, + 0x37e1c6, + 0x380fc6, + 0x3a60c5, + 0x2d9285, + 0x71e03b42, + 0x27b445, + 0x2b8308, + 0x2c4dc6, + 0x72206ec7, + 0x26e404, + 0x335187, + 0x302c86, + 0x72641542, + 0x351dc6, + 0x30740a, + 0x307c85, + 0x72ae9d02, + 0x72e8f4c2, + 0x33f806, + 0x323448, + 0x7328f4c7, + 0x73639102, + 0x28a5c3, + 0x209786, + 0x224e44, + 0x27e606, + 0x33bd46, + 0x20720a, + 0x331f45, + 0x328c46, + 0x32e243, + 0x32e244, + 0x202742, + 0x332cc3, + 0x73a14942, + 0x2d15c3, + 0x215a44, + 0x2c3184, + 0x73f2358a, + 0x21c4c3, + 0x226c4a, + 0x239dc7, + 0x312e86, + 0x25e2c4, + 0x20c702, + 0x2a6742, + 0x742007c2, + 0x2654c3, + 0x258d07, + 0x2007c7, + 0x2895c4, + 0x21e8c7, + 0x2f2346, + 0x219187, + 0x225904, + 0x37cb05, + 0x218345, + 0x74619f82, + 0x3dc5c6, + 0x21d843, + 0x220bc2, + 0x220bc6, + 0x74a19b42, + 0x74e1be02, + 0x3c3905, + 0x75243982, + 0x75602b42, + 0x348ac5, + 0x2d6385, + 0x2a7ec5, + 0x75a04e83, + 0x36f205, + 0x2e8207, + 0x2c4c05, + 0x332105, + 0x32a284, + 0x2e6006, + 0x34b504, + 0x75e008c2, + 0x76ae94c5, + 0x382b07, + 0x360088, + 0x251646, + 0x25164d, + 0x252b09, + 0x252b12, + 0x380385, + 0x38bd03, + 0x76e062c2, + 0x2f3e44, + 0x219ec3, + 0x30d305, + 0x30e4c5, + 0x772195c2, + 0x25ce03, + 0x7765b8c2, + 0x77ee3402, + 0x78200082, + 0x2c8b45, + 0x3cd503, + 0x24af88, + 0x78619082, + 0x78a0d2c2, + 0x348d06, + 0x31f38a, + 0x20ef03, + 0x25ac43, + 0x2eeac3, + 0x79e07d82, + 0x8821a6c2, + 0x88a0a742, + 0x206842, + 0x3d00c9, + 0x2c7504, + 0x2ac108, + 0x88efc182, + 0x89214f82, + 0x2af4c5, + 0x2345c8, + 0x311308, + 0x2ef30c, + 0x239d03, + 0x8961f202, + 0x89a0a342, + 0x349646, + 0x313d05, + 0x2dcf43, + 0x2574c6, + 0x313e46, + 0x29b2c3, + 0x3c2003, + 0x3152c6, + 0x316ac4, + 0x2819c6, + 0x21c28a, + 0x24e184, + 0x317184, + 0x31820a, + 0x89e1ff02, + 0x252205, + 0x319d4a, + 0x319c85, + 0x31b1c4, + 0x31b2c6, + 0x31b444, + 0x213fc6, + 0x8a22bc42, + 0x2fdd06, + 0x328805, + 0x32e0c7, + 0x3ad646, + 0x25d084, + 0x2dd1c7, + 0x34b206, + 0x20bf45, + 0x20bf47, + 0x3bbc47, + 0x3bbc4e, + 0x26bb86, + 0x221d45, + 0x207b87, + 0x306003, + 0x330387, + 0x209185, + 0x20af84, + 0x221ac2, + 0x229c47, + 0x30e204, + 0x231784, + 0x23f04b, + 0x21c8c3, + 0x288087, + 0x21c8c4, + 0x288287, + 0x294a03, + 0x34ca4d, + 0x3a4bc8, + 0x8a62a984, + 0x23d705, + 0x31bfc5, + 0x31c403, + 0x8aa23f82, + 0x31dd83, + 0x31e583, + 0x3dc744, + 0x27e0c5, + 0x21d8c7, + 0x32e2c6, + 0x38bac3, + 0x228d8b, + 0x27444b, + 0x2b200b, + 0x2d440b, + 0x2e9d4a, + 0x33484b, + 0x36d94b, + 0x392c8c, + 0x3d990b, + 0x3db991, + 0x32068a, + 0x320b8b, + 0x320e4c, + 0x32114b, + 0x3218ca, + 0x321f0a, + 0x322e0e, + 0x32380b, + 0x323aca, + 0x325011, + 0x32544a, + 0x32594b, + 0x325e8e, + 0x3267cc, + 0x326e0b, + 0x3270ce, + 0x32744c, + 0x329d4a, + 0x32b58c, + 0x8af2b88a, + 0x32c488, + 0x32d049, + 0x33390a, + 0x333b8a, + 0x333e0b, + 0x33854e, + 0x338f51, + 0x341f49, + 0x34218a, + 0x342f8b, + 0x3444ca, + 0x345596, + 0x34690b, + 0x34768a, + 0x34854a, + 0x349d8b, + 0x34a609, + 0x34d3c9, + 0x34da0d, + 0x34e44b, + 0x34f34b, + 0x34fd0b, + 0x350589, + 0x350bce, + 0x35130a, + 0x35224a, + 0x3527ca, + 0x352f8b, + 0x3537cb, + 0x35448d, + 0x356b8d, + 0x357c10, + 0x3580cb, + 0x358acc, + 0x3596cb, + 0x35b98b, + 0x35dd4e, + 0x35e44b, + 0x35e44d, + 0x364a4b, + 0x3654cf, + 0x36588b, + 0x3660ca, + 0x3673c9, + 0x367bc9, + 0x8b368c4b, + 0x368f0e, + 0x36b88b, + 0x36c50f, + 0x36e54b, + 0x36e80b, + 0x36eacb, + 0x36f34a, + 0x374e89, + 0x37978f, + 0x37df0c, + 0x37fb4c, + 0x38004e, + 0x38054f, + 0x38090e, + 0x381150, + 0x38154f, + 0x38210e, + 0x382ccc, + 0x382fd2, + 0x383751, + 0x383f4e, + 0x38438e, + 0x3853cb, + 0x3853ce, + 0x38574f, + 0x385b0e, + 0x385e93, + 0x386351, + 0x38678c, + 0x386a8e, + 0x386f0c, + 0x387453, + 0x387c50, + 0x3887cc, + 0x388acc, + 0x388f8b, + 0x38984e, + 0x389d4b, + 0x38a54b, + 0x38d28c, + 0x391f8a, + 0x39248c, + 0x39278c, + 0x392a89, + 0x39470b, + 0x3949c8, + 0x395189, + 0x39518f, + 0x39690b, + 0x8b79724a, + 0x39a2cc, + 0x39b48b, + 0x39b749, + 0x39bb88, + 0x39c14b, + 0x39c98b, + 0x39d50a, + 0x39d78b, + 0x3a150c, + 0x3a26c8, + 0x3a4f0b, + 0x3a814b, + 0x3ab00e, + 0x3ac50b, + 0x3ae20b, + 0x3bb7cb, + 0x3bba89, + 0x3bbfcd, + 0x3cd98a, + 0x3d0b57, + 0x3d1358, + 0x3d3f49, + 0x3d508b, + 0x3d6054, + 0x3d654b, + 0x3d6aca, + 0x3d6f8a, + 0x3d720b, + 0x3d79d0, + 0x3d7dd1, + 0x3d838a, + 0x3d8f0d, + 0x3d960d, + 0x3dbdcb, + 0x3dc6c3, + 0x8bb77983, + 0x2d4886, + 0x278445, + 0x30db87, + 0x334706, + 0x1605042, + 0x2dd4c9, + 0x32c104, + 0x2e7748, + 0x21d4c3, + 0x2f3d87, + 0x22f282, + 0x2af9c3, + 0x8be0a842, + 0x2cd186, + 0x2ce1c4, + 0x35cbc4, + 0x332803, + 0x8c6c8e42, + 0x8caab204, + 0x275d07, + 0x8ce37b02, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0xecf48, + 0x2013c3, + 0x2000c2, + 0xa14c8, + 0x202782, + 0x220583, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x202003, + 0x33e716, + 0x362c13, + 0x21e749, + 0x2447c8, + 0x3cb289, + 0x319ec6, + 0x34e710, + 0x2425d3, + 0x347c88, + 0x279447, + 0x27ad47, + 0x2a3b0a, + 0x32efc9, + 0x3a2849, + 0x24184b, + 0x3cbf86, + 0x289b0a, + 0x221346, + 0x32bd03, + 0x2dc8c5, + 0x3d1dc8, + 0x234a8d, + 0x3b8b8c, + 0x310ac7, + 0x32428d, + 0x225344, + 0x23094a, + 0x231e4a, + 0x23230a, + 0x2428c7, + 0x23bc07, + 0x23ef84, + 0x26ec06, + 0x32f404, + 0x2da308, + 0x2e1509, + 0x2d0f46, + 0x2d0f48, + 0x242d8d, + 0x2cc809, + 0x315848, + 0x239587, + 0x2399ca, + 0x253fc6, + 0x25f947, + 0x2cbe44, + 0x28f147, + 0x22964a, + 0x23d00e, + 0x278745, + 0x28f04b, + 0x229149, + 0x252d49, + 0x2add07, + 0x3bf4ca, + 0x2c1947, + 0x2f9209, + 0x3b9108, + 0x28eb4b, + 0x2e43c5, + 0x22bd4a, + 0x28fd09, + 0x37270a, + 0x2ceecb, + 0x3c514b, + 0x2415d5, + 0x2eb105, + 0x239605, + 0x2f864a, + 0x25b58a, + 0x311a07, + 0x234703, + 0x2b9388, + 0x2db00a, + 0x224086, + 0x266809, + 0x283048, + 0x2dcb04, + 0x387209, + 0x2c2988, + 0x2beec7, + 0x2e94c6, + 0x382b07, + 0x3503c7, + 0x23e385, + 0x2e730c, + 0x23d705, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x202782, + 0x22d7c3, + 0x206b43, + 0x2013c3, + 0x23cf83, + 0x22d7c3, + 0x206b43, + 0x13c3, + 0x2a8b03, + 0x23cf83, + 0x1cdd43, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0xa14c8, + 0x202782, + 0x22d7c3, + 0x22d7c7, + 0x206b43, + 0x23cf83, + 0x202782, + 0x203dc2, + 0x31b402, + 0x206102, + 0x200d42, + 0x2ea5c2, + 0x91d46, + 0x54389, + 0x481b683, + 0x89947, + 0x7b83, + 0x11b645, + 0xc1, + 0x522d7c3, + 0x233743, + 0x228843, + 0x220583, + 0x219e43, + 0x205e03, + 0x2dc7c6, + 0x206b43, + 0x23cf83, + 0x204283, + 0xa14c8, + 0x200984, + 0x30ad47, + 0x332843, + 0x375e04, + 0x21a5c3, + 0x212003, + 0x220583, + 0x14c47, + 0x109744, + 0x3283, + 0x131905, + 0x2000c2, + 0x4ce83, + 0x6602782, + 0x688bc49, + 0x8c5cd, + 0x8c90d, + 0x31b402, + 0x22884, + 0x131949, + 0x2003c2, + 0x6e22788, + 0xf7dc4, + 0xa14c8, + 0x1419a42, + 0x14005c2, + 0x1419a42, + 0x1517386, + 0x22f303, + 0x26f283, + 0x762d7c3, + 0x230944, + 0x7a33743, + 0x7e20583, + 0x2067c2, + 0x222884, + 0x206b43, + 0x305f83, + 0x201642, + 0x23cf83, + 0x218142, + 0x2ffb03, + 0x209482, + 0x207043, + 0x283103, + 0x205302, + 0xa14c8, + 0x22f303, + 0x305f83, + 0x201642, + 0x2ffb03, + 0x209482, + 0x207043, + 0x283103, + 0x205302, + 0x2ffb03, + 0x209482, + 0x207043, + 0x283103, + 0x205302, + 0x22d7c3, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x219e43, + 0x205e03, + 0x205184, + 0x206b43, + 0x23cf83, + 0x202102, + 0x213c43, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x206b43, + 0x23cf83, + 0x3da885, + 0x2195c2, + 0x2000c2, + 0xa14c8, + 0x144b148, + 0x103e4a, + 0x220583, + 0x207881, + 0x2009c1, + 0x203281, + 0x202ec1, + 0x200a41, + 0x20c101, + 0x200a01, + 0x228441, + 0x207901, + 0x200001, + 0x2000c1, + 0x200201, + 0x12dac5, + 0xa14c8, + 0x200101, + 0x200f01, + 0x200501, + 0x202401, + 0x200041, + 0x200801, + 0x200181, + 0x202d41, + 0x200701, + 0x2004c1, + 0x200c01, + 0x200581, + 0x2003c1, + 0x201001, + 0x215f41, + 0x200401, + 0x200741, + 0x2007c1, + 0x200081, + 0x206841, + 0x201ec1, + 0x203301, + 0x201081, + 0x20a781, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x2003c2, + 0x23cf83, + 0x1b043, + 0x14c47, + 0x5f07, + 0x29f46, + 0x3530a, + 0x8b088, + 0x58748, + 0x58c07, + 0x108a46, + 0xe3485, + 0x45585, + 0x125d43, + 0x5bac6, + 0xec046, + 0x241844, + 0x37e847, + 0xa14c8, + 0x2dd2c4, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x2782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x32ba88, + 0x201844, + 0x233684, + 0x22afc4, + 0x349547, + 0x2d9947, + 0x22d7c3, + 0x23620b, + 0x31fb4a, + 0x3cc247, + 0x306588, + 0x328108, + 0x233743, + 0x336447, + 0x228843, + 0x20d348, + 0x210b49, + 0x222884, + 0x219e43, + 0x2fee88, + 0x205e03, + 0x2d618a, + 0x2dc7c6, + 0x3aa407, + 0x206b43, + 0x394486, + 0x26f108, + 0x23cf83, + 0x25ae06, + 0x2ef84d, + 0x2f1f08, + 0x2f898b, + 0x2bff86, + 0x3416c7, + 0x214dc5, + 0x2d5dca, + 0x228105, + 0x24308a, + 0x2195c2, + 0x207b83, + 0x231784, + 0x200006, + 0x3b0ec3, + 0x2a13c3, + 0x24de03, + 0x201843, + 0x372dc3, + 0x2017c2, + 0x300745, + 0x2a9049, + 0x23ea03, + 0x20a683, + 0x202b03, + 0x200201, + 0x2e8d87, + 0x2c8885, + 0x398a83, + 0x3c4703, + 0x22afc4, + 0x32f383, + 0x21c1c8, + 0x367603, + 0x31454d, + 0x26bc48, + 0x20b546, + 0x332d03, + 0x38d543, + 0x3ac783, + 0xbe2d7c3, + 0x232f88, + 0x236204, + 0x23fec3, + 0x200106, + 0x243608, + 0x202943, + 0x2d5e03, + 0x22d943, + 0x233743, + 0x210483, + 0x2416c3, + 0x2a6003, + 0x332c83, + 0x209c83, + 0x202403, + 0x38a7c5, + 0x254344, + 0x254cc7, + 0x2b06c2, + 0x2584c3, + 0x25af86, + 0x25c303, + 0x25c9c3, + 0x278643, + 0x309303, + 0x202383, + 0x2973c7, + 0xc220583, + 0x24b543, + 0x3d54c3, + 0x209a03, + 0x219c83, + 0x2fe043, + 0x3b4d05, + 0x371983, + 0x2f9f89, + 0x2035c3, + 0x30e7c3, + 0xc636803, + 0x3d8883, + 0x21b888, + 0x2a8f86, + 0x3090c6, + 0x29d786, + 0x388307, + 0x226b83, + 0x22a243, + 0x205e03, + 0x28b186, + 0x2104c2, + 0x2a6343, + 0x33d1c5, + 0x206b43, + 0x31aa87, + 0x16013c3, + 0x26f103, + 0x234203, + 0x218003, + 0x2050c3, + 0x23cf83, + 0x20e486, + 0x3315c6, + 0x37a043, + 0x2f0b83, + 0x213c43, + 0x225983, + 0x3c2083, + 0x2fe543, + 0x2ffec3, + 0x216345, + 0x25b583, + 0x378b46, + 0x32f608, + 0x217d43, + 0x274f89, + 0x363108, + 0x2170c8, + 0x224385, + 0x37cc0a, + 0x39da8a, + 0x22e30b, + 0x22f448, + 0x2ee443, + 0x38bc03, + 0x2f88c3, + 0x30f848, + 0x35e143, + 0x32e244, + 0x202742, + 0x260403, + 0x2007c3, + 0x229343, + 0x2572c3, + 0x204283, + 0x2195c2, + 0x227d43, + 0x239d03, + 0x317503, + 0x318c44, + 0x231784, + 0x228c83, + 0xa14c8, + 0x2000c2, + 0x200b02, + 0x2017c2, + 0x2020c2, + 0x200202, + 0x201942, + 0x258542, + 0x201242, + 0x200382, + 0x201442, + 0x25e5c2, + 0x200e82, + 0x26cec2, + 0x201002, + 0x2ea5c2, + 0x202142, + 0x203d42, + 0x213c42, + 0x2b0942, + 0x206382, + 0x200682, + 0x214582, + 0x202542, + 0x202002, + 0x201bc2, + 0x236082, + 0x202b42, + 0xc2, + 0xb02, + 0x17c2, + 0x20c2, + 0x202, + 0x1942, + 0x58542, + 0x1242, + 0x382, + 0x1442, + 0x5e5c2, + 0xe82, + 0x6cec2, + 0x1002, + 0xea5c2, + 0x2142, + 0x3d42, + 0x13c42, + 0xb0942, + 0x6382, + 0x682, + 0x14582, + 0x2542, + 0x2002, + 0x1bc2, + 0x36082, + 0x2b42, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x1ec2, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x2782, + 0x202782, + 0x23cf83, + 0xde2d7c3, + 0x220583, + 0x205e03, + 0x6df83, + 0x22ebc2, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x6df83, + 0x23cf83, + 0xa842, + 0x2001c2, + 0x1445d45, + 0x12dac5, + 0x20b342, + 0xa14c8, + 0x2782, + 0x234f42, + 0x202282, + 0x201c42, + 0x205d42, + 0x24fd42, + 0x45585, + 0x201fc2, + 0x201642, + 0x21a682, 0x202b82, - 0x202903, - 0xb2b48, - 0x200742, - 0x24dd03, - 0x204502, - 0x22cc43, - 0x232ec3, - 0x215e43, - 0x21f504, - 0x20e403, - 0x21c103, - 0x201ac3, - 0x203583, - 0x80244, - 0x1553dc6, - 0x200742, - 0x204502, - 0x215e43, - 0x20e403, - 0x201ac3, + 0x202142, + 0x3a1602, + 0x203842, + 0x295a82, + 0xef0b404, + 0x142, + 0x14c47, + 0x1a108d, + 0xe3509, + 0xaea4b, + 0xe80c8, + 0x71f49, + 0x10f346, + 0x220583, + 0xa14c8, + 0x109744, + 0x3283, + 0x131905, + 0xa14c8, + 0xdffc7, + 0x59706, + 0x131949, + 0x14a0e, + 0x137987, + 0x2000c2, + 0x241844, + 0x202782, + 0x22d7c3, + 0x203dc2, + 0x233743, + 0x19d03, + 0x200382, + 0x2dd2c4, + 0x219e43, + 0x24ab82, + 0x206b43, + 0x2003c2, + 0x23cf83, + 0x239606, + 0x3343cf, + 0x602, + 0x7094c3, + 0xa14c8, + 0x202782, + 0x228843, + 0x220583, + 0x205e03, + 0x13c3, + 0x14a08, + 0x14d5b8b, + 0x153f50a, + 0x148e24a, + 0x14726c7, + 0xa3bcb, + 0x15e1c5, + 0x11a7c9, + 0x12dac5, + 0x14c47, + 0xf5744, + 0x202782, + 0x22d7c3, + 0x220583, + 0x206b43, + 0x2000c2, + 0x201cc2, + 0x33b5c2, + 0x1222d7c3, + 0x23c842, + 0x233743, + 0x203582, + 0x20a1c2, + 0x220583, + 0x2068c2, + 0x272142, + 0x2ab1c2, + 0x202082, + 0x291a82, + 0x200802, + 0x2012c2, + 0x207102, + 0x27a482, + 0x201d02, + 0x18c3cc, + 0x2b1402, + 0x2efdc2, + 0x21d882, + 0x241442, + 0x205e03, + 0x200c02, + 0x206b43, + 0x209b42, + 0x2d43c2, + 0x23cf83, + 0x23ea82, + 0x202002, + 0x200ec2, + 0x201282, + 0x215042, + 0x2e9d02, + 0x219f82, + 0x25b8c2, + 0x220d02, + 0x323aca, + 0x3660ca, + 0x39858a, + 0x3dce42, + 0x218b42, + 0x3b4cc2, + 0x12644509, + 0x12b63a0a, + 0x142e5c7, + 0x12e04d82, + 0x140abc3, + 0x2e82, + 0x163a0a, + 0x1878ce, + 0x24ec04, + 0x5bd85, + 0x1362d7c3, + 0x3d4c3, + 0x233743, + 0x251184, + 0x1c1f46, + 0x220583, + 0x222884, + 0x219e43, + 0x13ee09, + 0x157646, + 0x205e03, + 0xe9644, + 0x10a4c3, + 0x206b43, + 0xfc85, + 0x2013c3, + 0x23cf83, + 0x14e60c4, + 0x25b583, + 0x6a04, + 0x207b83, + 0xa14c8, + 0x109406, + 0x15089c4, + 0x132605, + 0x13774a, + 0x12b382, + 0x1a7b46, + 0x48fd1, + 0x13e44509, + 0x132688, + 0x50308, + 0x1c6547, + 0x2442, + 0xe834e, + 0x12dacb, + 0x132e0b, + 0x19018a, + 0x89a4a, + 0x2afc7, + 0xa14c8, + 0x11d0c8, + 0x7947, + 0x1a81414b, + 0x1b047, + 0x1c742, + 0x7dc87, + 0xd4b8a, + 0x48a4f, + 0x4604f, + 0xd5e42, + 0x2782, + 0xa5f48, + 0xe1f0a, + 0xdfaca, + 0x54a4a, + 0x6ba48, + 0xe188, + 0x5d448, + 0xdff88, + 0x173088, + 0x2942, + 0x45dcf, + 0xa0d8b, + 0x6c648, + 0x3fbc7, + 0x374a, + 0x19ee0b, + 0x80b89, + 0x4aac7, + 0xe088, + 0x19dc4c, + 0x1a0047, + 0x6644a, + 0x18b08, + 0x29f4e, + 0x2a70e, + 0x2ae0b, + 0x3850b, + 0xde14b, + 0xe4b09, + 0xe518b, + 0xebb0d, + 0x10138b, + 0x110d0d, + 0x11108d, + 0x103c8a, + 0x315cb, + 0x3d54b, + 0x18af05, + 0x1ac24b50, + 0x168cf, + 0x10b5cf, + 0xe558d, + 0x13efd0, + 0x758c2, + 0x1b21e488, + 0x5d88, + 0x6e4d0, + 0x11e60e, + 0x1b7675c5, + 0x5010b, + 0x13df10, + 0x57d48, + 0xe28a, + 0x386c9, + 0x64b87, + 0x64ec7, + 0x65087, + 0x659c7, + 0x66b87, + 0x67107, + 0x67807, + 0x67d47, + 0x68287, + 0x68607, + 0x68cc7, + 0x68e87, + 0x69047, + 0x69207, + 0x69947, + 0x69cc7, + 0x6a787, + 0x6ab47, + 0x6b107, + 0x6b3c7, + 0x6b587, + 0x6c8c7, + 0x6cd87, + 0x6cf87, + 0x6d347, + 0x6d507, + 0x6d6c7, + 0x6ee07, + 0x70247, + 0x70647, + 0x70e07, + 0x710c7, + 0x71447, + 0x71607, + 0x71a07, + 0x72f87, + 0x739c7, + 0x73f47, + 0x74107, + 0x742c7, + 0x75b07, + 0x76587, + 0x76ac7, + 0x770c7, + 0x77287, + 0x77607, + 0x77b47, + 0x37482, + 0x5d54a, + 0xe9787, + 0x8b705, + 0x9a3d1, + 0x1d21c6, + 0xf2f0a, + 0xa5dca, + 0x59706, + 0x15578b, + 0x642, + 0x2fad1, + 0xb3dc9, + 0x967c9, + 0x7102, + 0x8898a, + 0xa8549, + 0xa8c8f, + 0xa928e, + 0xaa8c8, + 0x373c2, + 0x108f09, + 0x19774e, + 0x1c848c, + 0xeaa8f, + 0x1b174e, + 0x8284c, + 0xe4e09, + 0xe6711, + 0xe6cc8, + 0x19e052, + 0x19f60d, + 0x6eacd, + 0x16f00b, + 0x4da95, + 0x504c9, + 0x5c44a, + 0x73109, + 0x82c50, + 0x8700b, + 0x16e18f, + 0x1ca50b, + 0x916cc, + 0x93b50, + 0xa4cca, + 0xa620d, + 0xac4ce, + 0xae70a, + 0xaf0cc, + 0x150094, + 0xb3a51, + 0xb7f0b, + 0xb8f0f, + 0xb9d0d, + 0xba58e, + 0xbed8c, + 0xc1d8c, + 0xc304b, + 0xc3a0e, + 0xc42d0, + 0xc548b, + 0x134c0d, + 0x14288f, + 0xcfc0c, + 0xd0dce, + 0xd2d11, + 0xda08c, + 0xf5587, + 0xfc78d, + 0x11274c, + 0x1cf090, + 0x102dcd, + 0x11ac07, + 0x15c2d0, + 0x16f588, + 0x184ccb, + 0xb018f, + 0x17f8c8, + 0xf310d, + 0x107d10, + 0x175889, + 0x1bab22c6, + 0xb3143, + 0xba245, + 0x53a42, + 0x3bc9, + 0x5a34a, + 0x1bf9e506, + 0x1c27de84, + 0x5acc6, + 0x1d3ca, + 0xe5d0d, + 0x1c5313c9, + 0x19a03, + 0x114e0a, + 0xde5d1, + 0xdea09, + 0xdfa47, + 0xe0808, + 0xe0e07, + 0xe9848, + 0x45ecb, + 0x12d8c9, + 0xe9fd0, + 0xea48c, + 0xeaf48, + 0xeb3c5, + 0x1b9288, + 0x1bcd8a, + 0x19ac7, + 0x12e547, + 0x13c2, + 0x13ec0a, + 0x147488, + 0x1c3689, + 0x78505, + 0x11a90a, + 0x8f40f, + 0x12a2cb, + 0x1b4dcc, + 0x15c812, + 0x78845, + 0xed2c8, + 0x51c0a, + 0x1caf7605, + 0x17770c, + 0x13b403, + 0x1a1602, + 0x10004a, + 0x15003cc, + 0x1a03c8, + 0x110ec8, + 0x1cf47506, + 0x18c8c7, + 0x16f82, + 0x9482, + 0x4ecd0, + 0x72847, + 0x2f0cf, + 0x5bac6, + 0x7c64e, + 0x1592cb, + 0x49f88, + 0x80f49, + 0x1991d2, + 0x11570d, + 0x115f88, + 0xae909, + 0xd8f4d, + 0x18be89, + 0x19628b, + 0x1d1c08, + 0x7c988, + 0x7ec48, + 0x7f089, + 0x7f28a, + 0x7ff4c, + 0xea74a, + 0x1c20c7, + 0x55c8d, + 0xe6fd1, + 0x1d2ba886, + 0x1b068b, + 0x12bf0c, + 0x10448, + 0x48589, + 0x17c5cd, + 0x1a7d50, + 0xd2c2, + 0x14500d, + 0x7d82, + 0x1a6c2, + 0x1c200a, + 0x10c20a, + 0xf2e0a, + 0xf3c8b, + 0x2a98c, + 0x11c8cc, + 0x11cbca, + 0x11ce4e, + 0x1dc80d, + 0x1d5dcd05, + 0x136288, + 0xa842, + 0x1430c68e, + 0x14a0750e, + 0x152046ca, + 0x15b322ce, + 0x16202f4e, + 0x16b7350c, + 0x142e5c7, + 0x142e5c9, + 0x140abc3, + 0x173cd68c, + 0x17a758c9, + 0x18329b09, + 0x18b37549, + 0x2e82, + 0x10c5d1, + 0x7451, + 0x460d, + 0x132211, + 0x2e91, + 0x17344f, + 0x1cd5cf, + 0x7580c, + 0x129a4c, + 0x13748c, + 0x14364d, + 0x202d5, + 0x581cc, + 0x6964c, + 0x133510, + 0x17910c, + 0x18954c, + 0x199c99, + 0x1a9299, + 0x1b2559, + 0x1c0f94, + 0x1c3c94, + 0x7ad4, + 0x8554, + 0x8ad4, + 0x19258289, + 0x19807d89, + 0x1a269709, + 0x146e6ec9, + 0x2e82, + 0x14ee6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x156e6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x15ee6ec9, + 0x2e82, + 0x166e6ec9, + 0x2e82, + 0x16ee6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x176e6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x17ee6ec9, + 0x2e82, + 0x186e6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x18ee6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x196e6ec9, + 0x2e82, + 0x19ee6ec9, + 0x2e82, + 0x1a6e6ec9, + 0x2e82, + 0x7aca, + 0x2e82, + 0x48fc5, + 0x190184, + 0x10c68e, + 0x750e, + 0x79d4e, + 0x46ca, + 0x1322ce, + 0x2f4e, + 0x17350c, + 0x1cd68c, + 0x758c9, + 0x129b09, + 0x137549, + 0x58289, + 0x7d89, + 0x69709, + 0x204cd, + 0x8809, + 0x8d89, + 0x141e44, + 0x1d5f44, + 0x18d184, + 0x149c84, + 0xa3e84, + 0x2c684, + 0x36a04, + 0x52644, + 0x103a04, + 0x159da03, + 0x31b07, + 0x3484c, + 0x20c3, + 0x758c2, + 0x1dc803, + 0x20c3, + 0x35e03, + 0x148702, + 0x1da608, + 0x12d947, + 0x2942, + 0x2000c2, + 0x202782, + 0x203dc2, + 0x219d02, + 0x200382, + 0x2003c2, + 0x209482, + 0x22d7c3, + 0x233743, + 0x220583, + 0x219c83, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x206b43, + 0x23cf83, + 0xb243, + 0x220583, + 0x22884, + 0x2000c2, + 0x24ce83, + 0x1fa2d7c3, + 0x38abc7, + 0x220583, + 0x214903, + 0x205184, + 0x206b43, + 0x23cf83, + 0x21d60a, + 0x239605, + 0x213c43, + 0x21be02, + 0xa14c8, + 0xa14c8, + 0x2782, + 0x1392c2, + 0x2033114b, + 0x2062da44, + 0x7ddc5, + 0x5f85, + 0x1d9c46, + 0x20a05f85, + 0x57243, + 0x1080c3, + 0x109744, + 0x3283, + 0x131905, + 0x12dac5, + 0xa14c8, + 0x1b047, + 0x2d7c3, + 0x2123a4c7, + 0x3686, + 0x21573345, + 0x3a5c7, + 0xbb4a, + 0xba08, + 0xea47, + 0x679ca, + 0x183548, + 0x33c87, + 0x1a618f, + 0x3e047, + 0x52446, + 0x13df10, + 0xf43cf, + 0x12789, + 0x5ad44, + 0x2183a68e, + 0x50949, + 0x69346, + 0x1071c9, + 0x18bb06, + 0x1c4d06, + 0x6c40c, + 0x19f00a, + 0x80d07, + 0x1cd10a, + 0x160a49, + 0xef0cc, + 0x1b4a8a, + 0x60c0a, + 0x131949, + 0x5acc6, + 0x80dca, + 0x11658a, + 0x9cf0a, + 0x11a349, + 0xdce88, + 0xdd106, + 0xe3a0d, + 0xbacc5, + 0x21f4df8c, + 0x137987, + 0x1051c9, + 0xb4147, + 0x10cad4, + 0x10cfcb, + 0x3fa0a, + 0x19904a, + 0xa65cd, + 0x14f3e89, + 0x1154cc, + 0x115d8b, + 0x18b03, + 0x18b03, + 0x29f46, + 0x18b03, + 0x1d9c48, + 0x1cd543, + 0x150c443, + 0x54389, + 0x14cfe83, + 0x82ec7, + 0x22dc6409, + 0x12a06, + 0x1081c9, + 0x4ce83, + 0xa14c8, + 0x2782, + 0x51184, + 0x88dc3, + 0x1da885, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x20a683, + 0x22d7c3, + 0x233743, + 0x228843, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x296983, + 0x207b83, + 0x20a683, + 0x241844, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x204f03, + 0x249c6505, + 0x142c183, + 0x22d7c3, + 0x233743, + 0x219d03, + 0x228843, + 0x220583, + 0x222884, + 0x37fa83, + 0x22a243, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x2561dac3, + 0x15c709, + 0x2782, + 0x2097c3, + 0x2622d7c3, + 0x233743, + 0x24adc3, + 0x220583, + 0x217343, + 0x22a243, + 0x23cf83, + 0x21c3c3, + 0x369444, + 0xa14c8, + 0x26a2d7c3, + 0x233743, + 0x2aa983, + 0x220583, + 0x205e03, + 0x205184, + 0x206b43, + 0x23cf83, + 0x22ec43, + 0xa14c8, + 0x2722d7c3, + 0x233743, + 0x228843, + 0x2013c3, + 0x23cf83, + 0xa14c8, + 0x142e5c7, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x205184, + 0x206b43, + 0x23cf83, + 0x12dac5, + 0x14c47, + 0x10cd0b, + 0xdee04, + 0xbacc5, + 0x144b148, + 0xaafcd, + 0x286e75c5, + 0x9a544, + 0x2782, + 0x1083, + 0x175785, + 0x2ebc2, + 0x2b82, + 0x3cc145, + 0xa14c8, + 0x18b02, + 0x1d003, + 0x16240f, + 0x2782, + 0xfd346, + 0x2ebc2, + 0x32c608, + 0x241844, + 0x340cc6, + 0x343506, + 0xa14c8, + 0x301983, + 0x2c6689, + 0x359a95, + 0x159a9f, + 0x22d7c3, + 0x3c0b52, + 0x16ed46, + 0x17fe05, + 0xe28a, + 0x386c9, + 0x3c090f, + 0x2dd2c4, + 0x25e605, + 0x30e590, + 0x2449c7, + 0x2013c3, + 0x2fb908, + 0x10b906, + 0x27ee0a, + 0x206f84, + 0x2f7043, + 0x21be02, + 0x2f060b, + 0x13c3, + 0x19c3c4, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x2fe843, + 0x202782, + 0xe16c3, + 0xf984, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x214903, + 0x226243, + 0x23cf83, + 0x4ce83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x2000c2, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x5f85, + 0x241844, + 0x22d7c3, + 0x233743, + 0x3216c4, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x6df83, + 0x23cf83, + 0x137249, + 0x22d7c3, + 0x233743, + 0x228843, + 0x209a03, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x32ef44, + 0x222884, + 0x206b43, + 0x23cf83, + 0x207b83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x6df83, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x2067c3, + 0x44b03, + 0x14903, + 0x206b43, + 0x23cf83, + 0x323aca, + 0x345349, + 0x35c04b, + 0x35d44a, + 0x3660ca, + 0x376b8b, + 0x38b8ca, + 0x391f8a, + 0x39858a, + 0x39880b, + 0x3bcac9, + 0x3c94ca, + 0x3c9c8b, + 0x3d680b, + 0x3db74a, + 0x22d7c3, + 0x233743, + 0x228843, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x17830b, + 0x5e148, + 0xd9084, + 0x46006, + 0xec149, + 0xa14c8, + 0x22d7c3, + 0xe284, + 0x264b84, + 0x20d142, + 0x205184, + 0x331e45, + 0x20a683, + 0x241844, + 0x22d7c3, + 0x236204, + 0x233743, + 0x251184, + 0x2dd2c4, + 0x222884, + 0x22a243, + 0x206b43, + 0x23cf83, + 0x3451c5, + 0x204f03, + 0x213c43, + 0x210f43, + 0x23d804, + 0x309384, + 0x308485, + 0xa14c8, + 0x2010c4, + 0x3c4e86, + 0x331a84, + 0x202782, + 0x35cc07, + 0x249587, + 0x24e444, + 0x25bec5, + 0x302fc5, + 0x22e1c5, + 0x222884, + 0x3883c8, + 0x239006, + 0x34c488, + 0x27a4c5, + 0x2e43c5, + 0x235fc4, + 0x23cf83, + 0x2f7dc4, + 0x3751c6, + 0x239703, + 0x23d804, + 0x243185, + 0x203b44, + 0x255ac4, + 0x21be02, + 0x39f906, + 0x3aec06, + 0x313d05, + 0x2000c2, + 0x24ce83, + 0x30a02782, + 0x21e604, + 0x200382, + 0x205e03, + 0x245ec2, + 0x206b43, + 0x2003c2, + 0x2f4786, + 0x202003, + 0x207b83, + 0xab204, + 0xa14c8, + 0xa14c8, + 0x220583, + 0x6df83, + 0x2000c2, + 0x31602782, + 0x220583, + 0x268fc3, + 0x37fa83, + 0x22da44, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x2000c2, + 0x31e02782, + 0x22d7c3, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x682, + 0x2062c2, + 0x2195c2, + 0x214903, + 0x2ef083, + 0x2000c2, + 0x12dac5, + 0xa14c8, + 0x14c47, + 0x202782, + 0x233743, + 0x251184, + 0x204183, + 0x220583, + 0x209a03, + 0x205e03, + 0x206b43, + 0x212203, + 0x23cf83, + 0x234703, + 0x1cb6d3, + 0x127714, + 0x12dac5, + 0x14c47, + 0x114486, + 0x111b4b, + 0x29f46, + 0x58587, + 0x5bec6, + 0x649, + 0x10408a, + 0x8af4d, + 0x1a0d8c, + 0x116f0a, + 0xf9708, + 0x45585, + 0xbb88, + 0x5bac6, + 0x1be646, + 0xec046, + 0x602, + 0x2758c2, + 0x7844, + 0x9b106, + 0x178050, + 0x83a0e, + 0x49c6, + 0x177e0c, + 0x336488cb, + 0x12dac5, + 0x1407cb, + 0x33bbe584, + 0x190347, + 0x23ed1, + 0x10388a, + 0x22d7c3, + 0x67945, + 0x160308, + 0x16f44, + 0x5a545, + 0x33d10886, + 0x9a3c6, + 0xbc406, + 0x91d4a, + 0x198ac3, + 0x34242584, + 0x54389, + 0x1784a, + 0x14cea89, + 0x605, + 0x110c83, + 0x3479e587, + 0xfc85, + 0x1563046, + 0x15584c, + 0xfac48, + 0xf084b, + 0xdf44b, + 0x34a4b78c, + 0x140c0c3, + 0xbbf88, + 0xf0ac5, + 0xa0c09, + 0xf3f88, + 0x141d306, + 0x89947, + 0x34f7c5c9, + 0x12b3c7, + 0x15e1ca, + 0x115a4d, + 0x140fc8, + 0x20c3, + 0x108943, + 0x1d9c48, + 0x103a04, + 0x129285, + 0xe8507, + 0x35245dc3, + 0x3575fec6, + 0x35af8644, + 0x35f00207, + 0x1d9c44, + 0x1d9c44, + 0x1d9c44, + 0x1d9c44, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x2000c2, + 0x202782, + 0x220583, + 0x2067c2, + 0x206b43, + 0x23cf83, + 0x202003, + 0x38054f, + 0x38090e, + 0xa14c8, + 0x22d7c3, + 0x43447, + 0x233743, + 0x220583, + 0x219e43, + 0x206b43, + 0x23cf83, + 0x4904, + 0x33c4, + 0xa04, + 0x21cd03, + 0x30a807, + 0x201842, + 0x2c9689, + 0x200b02, + 0x24efcb, + 0x2a52ca, + 0x2e2689, + 0x200542, + 0x2750c6, + 0x3ac995, + 0x24f115, + 0x230313, + 0x24f693, + 0x220f02, + 0x220f05, + 0x360e4c, + 0x27680b, + 0x296e05, + 0x2020c2, + 0x2ffe82, + 0x38f886, + 0x202442, + 0x260646, + 0x20e50d, + 0x20fa0c, + 0x224bc4, + 0x200882, + 0x20c882, + 0x39e408, + 0x200202, + 0x30f9c6, + 0x30f9cf, + 0x393e90, + 0x3a39c4, + 0x3acb55, + 0x230493, + 0x204dc3, + 0x34320a, + 0x20ee07, + 0x35f709, + 0x217707, + 0x225a42, + 0x200282, + 0x3b2246, + 0x207942, + 0xa14c8, + 0x201a42, + 0x2010c2, + 0x209247, + 0x341247, + 0x341251, + 0x218105, + 0x21810e, + 0x21860f, + 0x21c742, + 0x394547, + 0x21cd48, + 0x207c02, + 0x325802, + 0x2a9746, + 0x3418cf, + 0x2a9750, + 0x22b882, + 0x205cc2, + 0x32f488, + 0x212283, + 0x288f88, + 0x30bd8d, + 0x23af03, + 0x3723c8, + 0x23af0f, + 0x23b2ce, + 0x398d0a, + 0x226e51, + 0x2272d0, + 0x2bd68d, + 0x2bd9cc, + 0x3c2447, + 0x343387, + 0x340d89, + 0x224cc2, + 0x201942, + 0x259e0c, + 0x25a10b, + 0x2014c2, + 0x2c3206, + 0x22ec82, + 0x200482, + 0x2d5e42, + 0x202782, + 0x22dbc4, + 0x23a187, + 0x22bdc2, + 0x23e4c7, + 0x240787, + 0x220282, + 0x22eec2, + 0x243305, + 0x237982, + 0x2e920e, + 0x38288d, + 0x233743, + 0x397d0e, + 0x2b628d, + 0x341643, + 0x201602, + 0x286d04, + 0x265582, + 0x2029c2, + 0x39b945, + 0x39d087, + 0x24a442, + 0x219d02, + 0x250d87, + 0x254708, + 0x2b06c2, + 0x2788c6, + 0x259c8c, + 0x259fcb, + 0x20e282, + 0x260e8f, + 0x261250, + 0x26164f, + 0x261a15, + 0x261f54, + 0x26244e, + 0x2627ce, + 0x262b4f, + 0x262f0e, + 0x263294, + 0x263793, + 0x263c4d, + 0x277d09, + 0x28cc43, + 0x204182, + 0x28dc85, + 0x3c70c6, + 0x200382, + 0x367207, + 0x220583, + 0x200642, + 0x232548, + 0x227091, + 0x2274d0, + 0x200bc2, + 0x28ba87, + 0x201b82, + 0x309a07, + 0x253a42, + 0x37ed89, + 0x38f847, + 0x318008, + 0x3106c6, + 0x2eef83, + 0x3cbdc5, + 0x2339c2, + 0x2004c2, + 0x3d5e45, + 0x377b85, + 0x200f82, + 0x21c583, + 0x340b47, + 0x218447, + 0x204042, + 0x204044, + 0x218983, + 0x348009, + 0x218988, + 0x200b42, + 0x208002, + 0x22cec7, + 0x235d05, + 0x363388, + 0x246a07, + 0x209b83, + 0x29af86, + 0x2bd50d, + 0x2bd88c, + 0x2da786, + 0x202282, + 0x2df302, + 0x2024c2, + 0x23ad8f, + 0x23b18e, + 0x303047, + 0x205e02, + 0x3200c5, + 0x3200c6, + 0x202dc2, + 0x200c02, + 0x29f506, + 0x210203, + 0x309946, + 0x2ccec5, + 0x2ccecd, + 0x2cd515, + 0x2cdf4c, + 0x2ce2cd, + 0x2ce612, + 0x200e82, + 0x26cec2, + 0x201342, + 0x329906, + 0x3c8346, + 0x2013c2, + 0x3c7146, + 0x21a682, + 0x2c71c5, + 0x200d42, + 0x2e9349, + 0x222ecc, + 0x22320b, + 0x2003c2, + 0x2550c8, + 0x2039c2, + 0x201002, + 0x271746, + 0x2e6e45, + 0x309807, + 0x226ac5, + 0x25bc05, + 0x2434c2, + 0x20bc42, + 0x202142, + 0x2ead87, + 0x2f484d, + 0x2f4bcc, + 0x3abf47, + 0x278842, + 0x203d42, + 0x20cb48, + 0x203d48, + 0x2e7c08, + 0x2f30c4, + 0x2c3c87, + 0x27df03, + 0x223802, + 0x204f02, + 0x2f5849, + 0x22a347, + 0x213c42, + 0x271b45, + 0x241f42, + 0x21f4c2, + 0x3bfe83, + 0x3bfe86, + 0x2fe542, + 0x2ffa82, + 0x200402, + 0x27ea46, + 0x2ddb07, + 0x213a42, + 0x200902, + 0x288dcf, + 0x397b4d, + 0x3d364e, + 0x2b610c, + 0x202342, + 0x204482, + 0x310505, + 0x3220c6, + 0x202482, + 0x206382, + 0x200682, + 0x246984, + 0x2fee04, + 0x355686, + 0x209482, + 0x27b0c7, + 0x233ec3, + 0x233ec8, + 0x23ba08, + 0x36ee87, + 0x253cc6, + 0x2037c2, + 0x2398c3, + 0x2b7387, + 0x287c86, + 0x2e3705, + 0x2f3448, + 0x203002, + 0x274e87, + 0x236082, + 0x308102, + 0x21bac2, + 0x218789, + 0x241542, + 0xc2148, + 0x201182, + 0x24fac3, + 0x331fc7, + 0x201202, + 0x22304c, + 0x22334b, + 0x2da806, + 0x310bc5, + 0x243982, + 0x202b42, + 0x2be3c6, + 0x267343, + 0x32ecc7, + 0x288782, + 0x2008c2, + 0x3ac815, + 0x24f2d5, + 0x2301d3, + 0x24f813, + 0x38a2c7, + 0x25fad1, + 0x266d10, + 0x276c52, + 0x27b891, + 0x29a7c8, + 0x29a7d0, + 0x2a168f, + 0x2a5093, + 0x384f52, + 0x3bc3d0, + 0x2b240f, + 0x2c0dd2, + 0x3a2291, + 0x2cca13, + 0x2d7212, + 0x2db24f, + 0x2dc04e, + 0x2e0392, + 0x2e2491, + 0x2ec80f, + 0x2fe1ce, + 0x2f0fd1, + 0x2fae10, + 0x2fbc92, + 0x2fe8d1, + 0x33c390, + 0x354d0f, + 0x3bd1d1, + 0x3c9890, + 0x31b8c6, + 0x33bf87, + 0x215907, + 0x203b02, + 0x2847c5, + 0x30e307, + 0x2195c2, + 0x206042, + 0x227d45, + 0x202243, + 0x308e06, + 0x2f4a0d, + 0x2f4d4c, + 0x206842, + 0x360ccb, + 0x2766ca, + 0x220dca, + 0x2bce09, + 0x2f284b, + 0x246b4d, + 0x30ea0c, + 0x27250a, + 0x2707cc, + 0x27778b, + 0x296c4c, + 0x2b464e, + 0x3560cb, + 0x2b588c, + 0x2e4083, + 0x38bd86, + 0x3bf082, + 0x2fc182, + 0x20f203, + 0x214f82, + 0x21e4c3, + 0x32ae06, + 0x261bc7, + 0x2d3b06, + 0x2e20c8, + 0x3409c8, + 0x31e8c6, + 0x20a342, + 0x3136cd, + 0x313a0c, + 0x2df607, + 0x316d47, + 0x2351c2, + 0x213e42, + 0x276c02, + 0x279b42, + 0x3388d6, + 0x33d315, + 0x340296, + 0x343993, + 0x344052, + 0x353a93, + 0x354012, + 0x3adb0f, + 0x3bdfd8, + 0x3beb57, + 0x3c0019, + 0x3c1498, + 0x3c2e18, + 0x3c4197, + 0x3c5a17, + 0x3c6816, + 0x3ce1d3, + 0x3ce8d5, + 0x3cf792, + 0x3cfc13, + 0x202782, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x205184, + 0x206b43, + 0x23cf83, + 0x202003, + 0x2000c2, + 0x206702, + 0x37e938c5, + 0x3828a305, + 0x3867e706, + 0xa14c8, + 0x38ab2985, + 0x202782, + 0x203dc2, + 0x38f2f1c5, + 0x39282b45, + 0x39683f47, + 0x39a84c49, + 0x39e37284, + 0x200382, + 0x200642, + 0x3a24d8c5, + 0x3a698349, + 0x3ab37f88, + 0x3aeaef45, + 0x3b317887, + 0x3b613148, + 0x3baed185, + 0x3be45a86, + 0x3c2496c9, + 0x3c6d3388, + 0x3cac3848, + 0x3ce9898a, + 0x3d2e1804, + 0x3d60d685, + 0x3dabf848, + 0x3de03945, + 0x212302, + 0x3e237f83, + 0x3e6a5746, + 0x3eae6548, + 0x3efb8806, + 0x3f209388, + 0x3f727d86, + 0x3fa3dbc4, + 0x3fe02642, + 0x40301b47, + 0x406ab6c4, + 0x40a7a1c7, + 0x40f2f7c7, + 0x2003c2, + 0x4129dbc5, + 0x41644704, + 0x41ad29c7, + 0x41e31c87, + 0x42286b46, + 0x42683785, + 0x42a98447, + 0x42ed3208, + 0x4328e007, + 0x437cf549, + 0x43ad6385, + 0x43f125c7, + 0x44292f06, + 0x9a54b, + 0x44606548, + 0x22824d, + 0x27e1c9, + 0x2a874b, + 0x2aaa8b, + 0x3199cb, + 0x31758b, + 0x3222cb, + 0x32258b, + 0x322ac9, + 0x323d4b, + 0x32400b, + 0x3245cb, + 0x3256ca, + 0x325c0a, + 0x32620c, + 0x32a58b, + 0x32b18a, + 0x34240a, + 0x34ad8e, + 0x34bece, + 0x34c24a, + 0x34dd4a, + 0x34eb0b, + 0x34edcb, + 0x34fa4b, + 0x36bc8b, + 0x36c28a, + 0x36cf4b, + 0x36d20a, + 0x36d48a, + 0x36d70a, + 0x38d78b, + 0x392f8b, + 0x39588e, + 0x395c0b, + 0x39d24b, + 0x3a198b, + 0x3a51ca, + 0x3a5449, + 0x3a568a, + 0x3a764a, + 0x3bd9cb, + 0x3c9f4b, + 0x3ca7ca, + 0x3cdc0b, + 0x3d39cb, + 0x3db18b, + 0x44a854c8, + 0x44e8a6c9, + 0x452a0a89, + 0x456e7748, + 0x355405, + 0x2017c3, + 0x27fac4, + 0x2be185, + 0x236fc6, + 0x245805, + 0x289d84, + 0x367108, + 0x31c2c5, + 0x294c44, + 0x3c2887, + 0x2a000a, + 0x381e0a, + 0x303147, + 0x21a647, + 0x2e0947, + 0x27cfc7, + 0x35b445, + 0x211d46, + 0x39f487, + 0x360704, + 0x2b5186, + 0x2f1b86, + 0x3bf885, + 0x34a344, + 0x2999c6, + 0x29ecc7, + 0x238186, + 0x301747, + 0x228883, + 0x3d3c86, + 0x2ff6c5, + 0x284047, + 0x269e8a, + 0x232644, + 0x212508, + 0x312a09, + 0x2cd2c7, + 0x393846, + 0x255348, + 0x3b8f49, + 0x32af04, + 0x3a8c84, + 0x2d8045, + 0x2823c8, + 0x2ca0c7, + 0x2c4949, + 0x229a08, + 0x318dc6, + 0x2e6006, + 0x29ae08, + 0x370586, + 0x28a305, + 0x286c06, + 0x27aa48, + 0x3a8d06, + 0x23eacb, + 0x2b1046, + 0x29c80d, + 0x3bf405, + 0x2ab586, + 0x213205, + 0x349189, + 0x247e07, + 0x3badc8, + 0x3666c6, + 0x29b949, + 0x3cb146, + 0x269e05, + 0x2a2dc6, + 0x2704c6, + 0x2cf6c9, + 0x2bb246, + 0x29fd07, + 0x2a3445, + 0x21b203, + 0x223885, + 0x29cac7, + 0x3614c6, + 0x3bf309, + 0x27e706, + 0x286e46, + 0x211a09, + 0x286609, + 0x2a39c7, + 0x384748, + 0x29a209, + 0x284448, + 0x36bb06, + 0x2dcc45, + 0x31ef0a, + 0x286ec6, + 0x204c46, + 0x2d3e45, + 0x256488, + 0x357487, + 0x22f8ca, + 0x251a06, + 0x2f36c5, + 0x2ffd46, + 0x2d5607, + 0x393707, + 0x21b385, + 0x269fc5, + 0x2a95c6, + 0x2b6806, + 0x2d4686, + 0x2bfd04, + 0x285b89, + 0x28b846, + 0x2d03ca, + 0x225c88, + 0x3122c8, + 0x381e0a, + 0x223a45, + 0x29ec05, + 0x2311c8, + 0x2baf48, + 0x239f47, + 0x2b7dc6, + 0x33af48, + 0x218d07, + 0x2838c8, + 0x2b9bc6, + 0x287608, + 0x297986, + 0x27a647, + 0x36fe46, + 0x2999c6, + 0x281f8a, + 0x2da906, + 0x2dcc49, + 0x368146, + 0x371d8a, + 0x23dbc9, + 0x2f5206, + 0x2bba04, + 0x28dd4d, + 0x28a947, + 0x28e8c6, + 0x2c3705, + 0x3cb1c5, + 0x38ef06, + 0x2d2809, + 0x2eda47, + 0x27bfc6, + 0x2cbcc6, + 0x289e09, + 0x28a244, + 0x241304, + 0x201688, + 0x35fb86, + 0x2a2ec8, + 0x2fd948, + 0x3b9d47, + 0x3b8209, + 0x3b44c7, + 0x2b284a, + 0x2f630f, + 0x2ec3ca, + 0x310305, + 0x27ac85, + 0x2108c5, + 0x3b7807, + 0x23f643, + 0x384948, + 0x27d606, + 0x27d709, + 0x2eb646, + 0x2cf507, + 0x29b709, + 0x3bacc8, + 0x2d3f07, + 0x31fe43, + 0x355485, + 0x2d5145, + 0x2bfb4b, + 0x203a04, + 0x306384, + 0x278ec6, + 0x3204c7, + 0x39aeca, + 0x238007, + 0x209887, + 0x282b45, + 0x3c0645, + 0x292189, + 0x2999c6, + 0x237e8d, + 0x3632c5, + 0x2b5dc3, + 0x226783, + 0x21e685, + 0x35b0c5, + 0x255348, + 0x27cc87, + 0x241086, + 0x2a0706, + 0x2288c5, + 0x233a07, + 0x3b9847, + 0x238ec7, + 0x20d70a, + 0x3d3d48, + 0x2bfd04, + 0x280887, + 0x2805c7, + 0x34f046, + 0x297007, + 0x2c8608, + 0x304248, + 0x247d06, + 0x21a888, + 0x2bb2c4, + 0x39f486, + 0x2656c6, + 0x390946, + 0x201b06, + 0x21bb44, + 0x27d086, + 0x2c2346, + 0x299d86, + 0x20fd86, + 0x3c7586, + 0x244446, + 0x240f88, + 0x2b5008, + 0x2d9608, + 0x245a08, + 0x231146, + 0x20c245, + 0x223846, + 0x2aefc5, + 0x391647, + 0x229ac5, + 0x20c503, + 0x3c4785, + 0x22ccc4, + 0x3c76c5, + 0x2039c3, + 0x3a3547, + 0x3426c8, + 0x301806, + 0x36694d, + 0x27ac46, + 0x299345, + 0x218783, + 0x2bf209, + 0x28a3c6, + 0x295746, + 0x288904, + 0x2ec347, + 0x39fec6, + 0x2edd05, + 0x20fd43, + 0x3d1ac4, + 0x280786, + 0x211e44, + 0x2657c8, + 0x3bb109, + 0x306d89, + 0x2a2cca, + 0x29270d, + 0x2329c7, + 0x3c4bc6, + 0x20bc84, + 0x284c49, + 0x289388, + 0x28a546, + 0x235606, + 0x297007, + 0x2bc186, + 0x2266c6, + 0x336886, + 0x32f84a, + 0x213148, + 0x2a9e45, + 0x372a49, + 0x2ca84a, + 0x3029c8, + 0x29e408, + 0x2956c8, + 0x2a034c, + 0x34ff85, + 0x2a0988, + 0x2b7b46, + 0x344ec6, + 0x3a1c07, + 0x237f05, + 0x286d85, + 0x306c49, + 0x3dc3c7, + 0x27d6c5, + 0x228707, + 0x226783, + 0x2cad05, + 0x21ea48, + 0x285907, + 0x29e2c9, + 0x2dcb05, + 0x3b0b44, + 0x2a4248, + 0x301c87, + 0x2d40c8, + 0x3b5c08, + 0x2ac3c5, + 0x3b7bc6, + 0x248186, + 0x2d8409, + 0x2b1847, + 0x2af786, + 0x21e147, + 0x202183, + 0x237284, + 0x2d0a85, + 0x280b04, + 0x24ba44, + 0x25e7c7, + 0x268747, + 0x27c184, + 0x29e110, + 0x372c47, + 0x3c0645, + 0x3308cc, + 0x20f384, + 0x35d248, + 0x27a549, + 0x383dc6, + 0x2f40c8, + 0x246544, + 0x2791c8, + 0x302346, + 0x281e08, + 0x29cd86, + 0x39800b, + 0x32cd85, + 0x2d0908, + 0x211444, + 0x3bb54a, + 0x29e2c9, + 0x36fd46, + 0x319348, + 0x2a6105, + 0x2be9c4, + 0x35d146, + 0x238d88, + 0x2854c8, + 0x33b7c6, + 0x21fe04, + 0x31ee86, + 0x3b4547, + 0x27a0c7, + 0x29700f, + 0x32de07, + 0x2f52c7, + 0x31ff85, + 0x374345, + 0x2a3689, + 0x2e8ac6, + 0x26b885, + 0x286907, + 0x3a1e88, + 0x2fca45, + 0x36fe46, + 0x225ac8, + 0x3b880a, + 0x238a88, + 0x28fa87, + 0x2f6746, + 0x372a06, + 0x2003c3, + 0x20ecc3, + 0x2caa09, + 0x29a089, + 0x35d046, + 0x2dcb05, + 0x21ab08, + 0x319348, + 0x370708, + 0x33690b, + 0x366b87, + 0x2fb749, + 0x297288, + 0x35e8c4, + 0x390588, + 0x291209, + 0x2afa85, + 0x3b7707, + 0x237305, + 0x2853c8, + 0x29374b, + 0x298190, + 0x2ab305, + 0x21138c, + 0x241245, + 0x282bc3, + 0x2b4446, + 0x2c1244, + 0x370106, + 0x29ecc7, + 0x225b44, + 0x241fc8, + 0x38480d, + 0x319205, + 0x232a04, + 0x2a2544, + 0x2a2549, + 0x2acbc8, + 0x32d247, + 0x3023c8, + 0x285c48, + 0x27c2c5, + 0x205987, + 0x27c247, + 0x2c6447, + 0x269fc9, + 0x3365c9, + 0x20b646, + 0x2bdbc6, + 0x2869c6, + 0x34d6c5, + 0x3a83c4, + 0x3ba3c6, + 0x3bf0c6, + 0x27c308, + 0x2d52cb, + 0x267287, + 0x20bc84, + 0x39fe06, + 0x2c8947, + 0x244045, + 0x244f45, + 0x2ae104, + 0x336546, + 0x3ba448, + 0x284c49, + 0x25f446, + 0x289188, + 0x2eddc6, + 0x35a6c8, + 0x2b340c, + 0x27c186, + 0x29900d, + 0x29948b, + 0x29fdc5, + 0x3b9987, + 0x2bb346, + 0x3935c8, + 0x20b6c9, + 0x3057c8, + 0x3c0645, + 0x360447, + 0x284548, + 0x2ff109, + 0x39fb46, + 0x25f34a, + 0x393348, + 0x30560b, + 0x2133cc, + 0x2792c8, + 0x27fd46, + 0x205388, + 0x3b8487, + 0x209509, + 0x3179cd, + 0x2998c6, + 0x23f608, + 0x2b4ec9, + 0x2bfe08, + 0x287708, + 0x2c2d8c, + 0x2c3e47, + 0x2c4f47, + 0x269e05, + 0x2b89c7, + 0x3a1d48, + 0x35d1c6, + 0x36b18c, + 0x2cb288, + 0x2d1f48, + 0x2ff406, + 0x2d4ec7, + 0x20b844, + 0x245a08, + 0x31e9cc, + 0x28b28c, + 0x310385, + 0x3bf907, + 0x21fd86, + 0x2d4e46, + 0x349348, + 0x21cfc4, + 0x23818b, + 0x27b20b, + 0x2f6746, + 0x384687, + 0x3ccdc5, + 0x271205, + 0x2382c6, + 0x2a60c5, + 0x2039c5, + 0x2cdd87, + 0x3bfcc9, + 0x2b69c4, + 0x25ca05, + 0x3ac2c5, + 0x3b7f88, + 0x28d3c5, + 0x26e249, + 0x375e47, + 0x375e4b, + 0x2f4f46, + 0x240cc9, + 0x34a288, + 0x288405, + 0x2c6548, + 0x336608, + 0x273547, + 0x302147, + 0x25e849, + 0x281d47, + 0x295309, + 0x334f0c, + 0x3cf448, + 0x2b84c9, + 0x2ba407, + 0x285d09, + 0x3617c7, + 0x2134c8, + 0x3b83c5, + 0x39f406, + 0x2c3748, + 0x2f6848, + 0x2ca709, + 0x203a07, + 0x271c05, + 0x256089, + 0x2d8746, + 0x292f04, + 0x31bd06, + 0x2e63c8, + 0x2ff8c7, + 0x2d54c8, + 0x21a949, + 0x3286c7, + 0x2a01c6, + 0x3b9a44, + 0x3c4809, + 0x205808, + 0x2ff2c7, + 0x237c86, + 0x2d5206, + 0x204bc4, + 0x36a2c6, + 0x23a303, + 0x32c909, + 0x32cd46, + 0x2ab805, + 0x2a0706, + 0x2cfa85, + 0x2849c8, + 0x368547, + 0x2ddcc6, + 0x32f206, + 0x3122c8, + 0x2a3807, + 0x299905, + 0x29df08, + 0x3ca348, + 0x393348, + 0x241105, + 0x39f486, + 0x306b49, + 0x2d8284, + 0x2cf90b, + 0x2263cb, + 0x2a9d49, + 0x226783, + 0x25aac5, + 0x301606, + 0x241c88, + 0x2b6cc4, + 0x301806, + 0x20d849, + 0x31e385, + 0x2cdcc6, + 0x301c86, + 0x210984, + 0x29e58a, + 0x2ab748, + 0x2f6846, + 0x243e85, + 0x3ccc47, + 0x35b307, + 0x3b7bc4, + 0x226607, + 0x229a84, + 0x229a86, + 0x205dc3, + 0x269fc5, + 0x2b0445, + 0x368788, + 0x280a45, + 0x27bec9, + 0x245847, + 0x24584b, + 0x2a554c, + 0x2a5b4a, + 0x317887, + 0x201303, + 0x26bd48, + 0x2412c5, + 0x2fcac5, + 0x355544, + 0x2133c6, + 0x27a546, + 0x36a307, + 0x25560b, + 0x21bb44, + 0x3008c4, + 0x2c9284, + 0x2cf386, + 0x225b44, + 0x2824c8, + 0x355345, + 0x21b205, + 0x370647, + 0x3b9a89, + 0x35b0c5, + 0x38ef0a, + 0x2a3349, + 0x2a82ca, + 0x32f989, + 0x338e44, + 0x2cbd85, + 0x2bc288, + 0x2d2a8b, + 0x2d8045, + 0x2fdac6, + 0x240844, + 0x27c406, + 0x328549, + 0x2c8a47, + 0x27e8c8, + 0x292a86, + 0x3b44c7, + 0x2854c8, + 0x38f486, + 0x3b9544, + 0x380c47, + 0x36e085, + 0x382447, + 0x245a84, + 0x2bb2c6, + 0x3026c8, + 0x299648, + 0x2fa2c7, + 0x3294c8, + 0x297a45, + 0x226504, + 0x381d08, + 0x3201c4, + 0x210845, + 0x3028c4, + 0x218e07, + 0x28b907, + 0x285e48, + 0x2d4246, + 0x2809c5, + 0x27bcc8, + 0x24bb48, + 0x2a2c09, + 0x2266c6, + 0x22f948, + 0x3bb3ca, + 0x2440c8, + 0x2ed185, + 0x215686, + 0x2a3208, + 0x36050a, + 0x357887, + 0x2897c5, + 0x293108, + 0x2dd904, + 0x256506, + 0x2c52c8, + 0x3c7586, + 0x30a648, + 0x2d6947, + 0x3c2786, + 0x2bba04, + 0x281487, + 0x2b5484, + 0x328507, + 0x36fa8d, + 0x239fc5, + 0x2d260b, + 0x28b506, + 0x2551c8, + 0x241f84, + 0x231346, + 0x280786, + 0x2056c7, + 0x298ccd, + 0x2fc607, + 0x2b5d08, + 0x284e05, + 0x36a448, + 0x2ca046, + 0x297ac8, + 0x39df06, + 0x330647, + 0x2861c9, + 0x36a9c7, + 0x28a808, + 0x275c45, + 0x228948, + 0x2d4d85, + 0x22a4c5, + 0x32fc05, + 0x251e03, + 0x201b84, + 0x244185, + 0x2496c9, + 0x36a0c6, + 0x2c8708, + 0x301f05, + 0x2b8887, + 0x344a4a, + 0x2cdc09, + 0x2703ca, + 0x2d9688, + 0x22854c, + 0x28698d, + 0x30d243, + 0x30a548, + 0x3d1a85, + 0x3b85c6, + 0x3bab46, + 0x359205, + 0x21e249, + 0x361605, + 0x27bcc8, + 0x2590c6, + 0x35dbc6, + 0x2a4109, + 0x3aae47, + 0x293a06, + 0x3449c8, + 0x390848, + 0x2e7947, + 0x2c24ce, + 0x2ca285, + 0x2ff005, + 0x3c7488, + 0x2e9a87, + 0x204c42, + 0x2c2904, + 0x37000a, + 0x2ff388, + 0x336746, + 0x29b848, + 0x248186, + 0x361108, + 0x2af788, + 0x22a484, + 0x2b8c45, + 0x731a84, + 0x731a84, + 0x731a84, + 0x2094c3, + 0x2d5086, + 0x27c186, + 0x29fa8c, + 0x20d8c3, + 0x246446, + 0x2133c4, + 0x28a348, + 0x20d685, + 0x370106, + 0x2bf948, + 0x2daf86, + 0x2ddc46, + 0x3a88c8, + 0x2d0b07, + 0x281b09, + 0x3114ca, + 0x20d6c4, + 0x229ac5, + 0x2c4905, + 0x2d65c6, + 0x232a06, + 0x29f406, + 0x3cef46, + 0x281c44, + 0x281c4b, + 0x229884, + 0x240e45, + 0x2ae605, + 0x3b9e06, + 0x3c2c08, + 0x286847, + 0x32ccc4, + 0x25dfc3, + 0x2dd405, + 0x31bbc7, + 0x28674b, + 0x368687, + 0x2bf848, + 0x2b8d87, + 0x26b246, + 0x27e488, + 0x25364b, + 0x2be0c6, + 0x20c249, + 0x2537c5, + 0x31fe43, + 0x2cdcc6, + 0x2d6848, + 0x20d2c3, + 0x2ad643, + 0x2854c6, + 0x248186, + 0x37654a, + 0x27fd85, + 0x2805cb, + 0x2a064b, + 0x244e03, + 0x202603, + 0x2b27c4, + 0x247f47, + 0x2792c4, + 0x28a344, + 0x2b79c4, + 0x2443c8, + 0x243dc8, + 0x20ec49, + 0x2d6408, + 0x32fe87, + 0x20fd86, + 0x2c834f, + 0x2ca3c6, + 0x2d8b84, + 0x243c0a, + 0x31bac7, + 0x2b5586, + 0x292f49, + 0x20ebc5, + 0x3688c5, + 0x20ed06, + 0x228a83, + 0x2dd949, + 0x2132c6, + 0x21a709, + 0x39aec6, + 0x269fc5, + 0x310785, + 0x201b83, + 0x248088, + 0x32d407, + 0x27d604, + 0x28a1c8, + 0x344c44, + 0x304b46, + 0x2b4446, + 0x23cb46, + 0x2d07c9, + 0x2fca45, + 0x2999c6, + 0x22fec9, + 0x2c8e86, + 0x244446, + 0x3a3946, + 0x22b5c5, + 0x3028c6, + 0x330644, + 0x3b83c5, + 0x2c3744, + 0x2b78c6, + 0x363284, + 0x203b03, + 0x289445, + 0x2346c8, + 0x2e4947, + 0x2b6d49, + 0x2896c8, + 0x29abd1, + 0x301d0a, + 0x2f6687, + 0x304586, + 0x2133c4, + 0x2c3848, + 0x3698c8, + 0x29ad8a, + 0x26e00d, + 0x2a2dc6, + 0x3a89c6, + 0x281546, + 0x21b207, + 0x2b5dc5, + 0x275187, + 0x28a285, + 0x375f84, + 0x2aa746, + 0x39f2c7, + 0x2dd64d, + 0x2a3147, + 0x367008, + 0x27bfc9, + 0x215586, + 0x39fac5, + 0x231a84, + 0x2e64c6, + 0x3b7ac6, + 0x2ff506, + 0x29c0c8, + 0x222e43, + 0x2056c3, + 0x37f685, + 0x251386, + 0x2af745, + 0x292c88, + 0x29ee8a, + 0x3b7cc4, + 0x28a348, + 0x2956c8, + 0x3b9c47, + 0x301fc9, + 0x2bf548, + 0x284cc7, + 0x2b7c46, + 0x3c758a, + 0x2e6548, + 0x30d849, + 0x2acc88, + 0x21ae09, + 0x304447, + 0x2f9505, + 0x336b06, + 0x35d048, + 0x3885c8, + 0x39ea08, + 0x210988, + 0x240e45, + 0x201484, + 0x233088, + 0x21f304, + 0x32f784, + 0x269fc5, + 0x294c87, + 0x3b9849, + 0x2054c7, + 0x211a85, + 0x2790c6, + 0x367dc6, + 0x20c384, + 0x2a4446, + 0x27f8c4, + 0x28c286, + 0x3b9606, + 0x20d106, + 0x3c0645, + 0x292b47, + 0x201303, + 0x272d49, + 0x3120c8, + 0x284b44, + 0x284b4d, + 0x299748, + 0x2efe48, + 0x30d7c6, + 0x2862c9, + 0x2cdc09, + 0x328245, + 0x29ef8a, + 0x26e88a, + 0x24e50c, + 0x24e686, + 0x2799c6, + 0x2cac46, + 0x26b6c9, + 0x3b8806, + 0x213546, + 0x3616c6, + 0x245a08, + 0x238a86, + 0x2d7b4b, + 0x294e05, + 0x21b205, + 0x27a1c5, + 0x201406, + 0x226543, + 0x23cac6, + 0x2a30c7, + 0x2c3705, + 0x25c345, + 0x3cb1c5, + 0x37a286, + 0x328304, + 0x337e86, + 0x2a4a09, + 0x20128c, + 0x375cc8, + 0x238d04, + 0x3025c6, + 0x28b606, + 0x2d6848, + 0x319348, + 0x201189, + 0x3ccc47, + 0x35f8c9, + 0x2712c6, + 0x22b984, + 0x208044, + 0x2842c4, + 0x2854c8, + 0x3b968a, + 0x35b046, + 0x369f87, + 0x3826c7, + 0x240dc5, + 0x2c48c4, + 0x2911c6, + 0x2b5e06, + 0x21d003, + 0x311f07, + 0x3b5b08, + 0x32838a, + 0x22b688, + 0x209388, + 0x3632c5, + 0x29fec5, + 0x267385, + 0x241186, + 0x38b006, + 0x398bc5, + 0x32cb49, + 0x2c46cc, + 0x267447, + 0x29ae08, + 0x2b1185, + 0x731a84, + 0x22c344, + 0x285a44, + 0x21a506, + 0x2a1e0e, + 0x368947, + 0x21b405, + 0x2d820c, + 0x30e047, + 0x39f247, + 0x235a09, + 0x2125c9, + 0x2897c5, + 0x3120c8, + 0x306b49, + 0x393205, + 0x2c3648, + 0x2b8706, + 0x381f86, + 0x23dbc4, + 0x290008, + 0x215743, + 0x378384, + 0x2dd485, + 0x394c07, + 0x2de485, + 0x3bb289, + 0x29608d, + 0x2adc06, + 0x3c2344, + 0x2b7d48, + 0x3bfb0a, + 0x224887, + 0x3cc385, + 0x280a03, + 0x2a080e, + 0x24818c, + 0x302ac7, + 0x2a1fc7, + 0x109d86, + 0x205643, + 0x3b8845, + 0x285a45, + 0x29bc08, + 0x2987c9, + 0x238c06, + 0x2792c4, + 0x2f65c6, + 0x23f3cb, + 0x2bd28c, + 0x251ec7, + 0x2d7e05, + 0x3ca248, + 0x2e7705, + 0x243c07, + 0x301b47, + 0x39e885, + 0x226543, + 0x2193c4, + 0x2e6285, + 0x2b68c5, + 0x2b68c6, + 0x29c608, + 0x39f2c7, + 0x3bae46, + 0x204ac6, + 0x32fb46, + 0x23f789, + 0x205a87, + 0x27f9c6, + 0x2bd406, + 0x2e1706, + 0x2ab685, + 0x20a7c6, + 0x377645, + 0x28d448, + 0x29458b, + 0x290f06, + 0x382704, + 0x2da549, + 0x245844, + 0x2b8688, + 0x31be07, + 0x287604, + 0x2bebc8, + 0x2c4d44, + 0x2ab6c4, + 0x28a105, + 0x319246, + 0x244307, + 0x2166c3, + 0x2a0285, + 0x2f4344, + 0x2ff046, + 0x3282c8, + 0x3293c5, + 0x294249, + 0x256285, + 0x246448, + 0x358447, + 0x32ce48, + 0x2be807, + 0x2f5389, + 0x27cf06, + 0x334ac6, + 0x29a344, + 0x300805, + 0x312f4c, + 0x27a1c7, + 0x27ab47, + 0x232648, + 0x2adc06, + 0x2a3004, + 0x37af04, + 0x25e6c9, + 0x2cad46, + 0x292207, + 0x205304, + 0x2a4546, + 0x348c85, + 0x2d3d87, + 0x2d7ac6, + 0x25f209, + 0x2e8cc7, + 0x297007, + 0x2a3f86, + 0x237bc5, + 0x283748, + 0x213148, + 0x20ff86, + 0x329405, + 0x2c5e86, + 0x203883, + 0x29ba89, + 0x29f18e, + 0x2be548, + 0x344d48, + 0x20fd8b, + 0x294486, + 0x327d84, + 0x286584, + 0x29f28a, + 0x211287, + 0x27fa85, + 0x20c249, + 0x2c2405, + 0x32f7c7, + 0x2310c4, + 0x291547, + 0x2fd848, + 0x2cd386, + 0x2bb449, + 0x2bf64a, + 0x211206, + 0x299286, + 0x2ae585, + 0x3961c5, + 0x38cc47, + 0x2479c8, + 0x348bc8, + 0x22a486, + 0x310805, + 0x23278e, + 0x2bfd04, + 0x20ff05, + 0x278a49, + 0x2e88c8, + 0x28f9c6, + 0x29da0c, + 0x29ea90, + 0x2a1a4f, + 0x2a3588, + 0x317887, + 0x3c0645, + 0x244185, + 0x244189, + 0x293309, + 0x31ef86, + 0x2d80c7, + 0x300705, + 0x239f49, + 0x34f0c6, + 0x3b864d, + 0x284189, + 0x28a344, + 0x2be2c8, + 0x233149, + 0x35b206, + 0x26bf45, + 0x334ac6, + 0x27e789, + 0x2063c8, + 0x20c245, + 0x290004, + 0x29dbcb, + 0x35b0c5, + 0x241d06, + 0x286cc6, + 0x206dc6, + 0x2a294b, + 0x294349, + 0x2096c5, + 0x391547, + 0x301c86, + 0x3a8ac6, + 0x2857c8, + 0x282649, + 0x366dcc, + 0x31b9c8, + 0x31b4c6, + 0x33b7c3, + 0x37cd86, + 0x2a2785, + 0x281188, + 0x310206, + 0x2d3fc8, + 0x238085, + 0x3882c5, + 0x358588, + 0x390707, + 0x3baa87, + 0x36a307, + 0x2f40c8, + 0x2d66c8, + 0x2d1886, + 0x2b7707, + 0x237147, + 0x2a264a, + 0x246603, + 0x201406, + 0x232705, + 0x244704, + 0x27bfc9, + 0x2f5304, + 0x2b9f84, + 0x29ce04, + 0x2a1fcb, + 0x32d347, + 0x2329c5, + 0x297748, + 0x2790c6, + 0x2790c8, + 0x27fcc6, + 0x28ff45, + 0x290205, + 0x291bc6, + 0x292548, + 0x292e88, + 0x27c186, + 0x29758f, + 0x29b550, + 0x3bf405, + 0x201303, + 0x22ba45, + 0x2fb688, + 0x293209, + 0x393348, + 0x2d7ec8, + 0x2506c8, + 0x32d407, + 0x278d89, + 0x2d41c8, + 0x2fcf84, + 0x29cc88, + 0x3b8049, + 0x2b81c7, + 0x29cc04, + 0x205588, + 0x29290a, + 0x2cc046, + 0x2a2dc6, + 0x226589, + 0x29ecc7, + 0x2d0648, + 0x20a408, + 0x205188, + 0x38a405, + 0x396f85, + 0x21b205, + 0x285a05, + 0x2b4d07, + 0x226545, + 0x2c3705, + 0x3c2646, + 0x393287, + 0x2d29c7, + 0x292c06, + 0x2d9bc5, + 0x241d06, + 0x26be05, + 0x2badc8, + 0x300684, + 0x2c8f06, + 0x348ac4, + 0x2be9c8, + 0x2c900a, + 0x27cc8c, + 0x255805, + 0x21b2c6, + 0x366f86, + 0x37f546, + 0x2fb884, + 0x3693c5, + 0x27f607, + 0x29ed49, + 0x2cf7c7, + 0x731a84, + 0x731a84, + 0x32d1c5, + 0x2177c4, + 0x29d3ca, + 0x278f46, + 0x306944, + 0x3bf885, + 0x2b3945, + 0x2b5d04, + 0x286907, + 0x256207, + 0x2cf388, + 0x2c5f88, + 0x3c8009, + 0x3201c8, + 0x29d58b, + 0x2442c4, + 0x3a8bc5, + 0x26b905, + 0x36a289, + 0x282649, + 0x2da448, + 0x229888, + 0x2dea44, + 0x28b645, + 0x2017c3, + 0x2d6585, + 0x299a46, + 0x29860c, + 0x2131c6, + 0x26be46, + 0x28fc45, + 0x37a308, + 0x3194c6, + 0x304706, + 0x2a2dc6, + 0x22b40c, + 0x26b9c4, + 0x32fc8a, + 0x28fb88, + 0x298447, + 0x2f4246, + 0x238cc7, + 0x2f61c5, + 0x237c86, + 0x365e46, + 0x374207, + 0x2bf344, + 0x218f05, + 0x278a44, + 0x376007, + 0x278c88, + 0x27984a, + 0x2843c7, + 0x2ab8c7, + 0x317807, + 0x2e7849, + 0x29860a, + 0x20ff83, + 0x2e4905, + 0x20d143, + 0x2b7a09, + 0x2d6a88, + 0x31ff87, + 0x393449, + 0x213246, + 0x32df48, + 0x3a34c5, + 0x24bc4a, + 0x384ac9, + 0x247bc9, + 0x3a1c07, + 0x3699c9, + 0x20d008, + 0x361306, + 0x21b488, + 0x3c1c47, + 0x281d47, + 0x2a3347, + 0x2d3208, + 0x3d02c6, + 0x2926c5, + 0x27f607, + 0x298d88, + 0x348a44, + 0x2d0284, + 0x293907, + 0x2afb07, + 0x3069ca, + 0x361286, + 0x3696ca, + 0x2c2847, + 0x2bfac7, + 0x218fc4, + 0x2953c4, + 0x2d3c86, + 0x3a0144, + 0x3a014c, + 0x306885, + 0x2107c9, + 0x2465c4, + 0x2b5dc5, + 0x3bfa88, + 0x28ea85, + 0x38ef06, + 0x293444, + 0x2a6c8a, + 0x2b1746, + 0x23ed0a, + 0x28e007, + 0x2d5605, + 0x228a85, + 0x240e0a, + 0x39e945, + 0x244146, + 0x21f304, + 0x2b2946, + 0x38cd05, + 0x3102c6, + 0x2fa2cc, + 0x2db94a, + 0x26e984, + 0x20fd86, + 0x29ecc7, + 0x2d7a44, + 0x245a08, + 0x2e37c6, + 0x382549, + 0x2c1b89, + 0x3cf549, + 0x2cfac6, + 0x3c1d46, + 0x21b5c7, + 0x32ca88, + 0x3c1b49, + 0x32d347, + 0x2978c6, + 0x3b4547, + 0x281405, + 0x2bfd04, + 0x21b187, + 0x237305, + 0x28a045, + 0x2f9e47, + 0x39e748, + 0x3ca1c6, + 0x299bcd, + 0x29be0f, + 0x2a064d, + 0x20d884, + 0x2347c6, + 0x2dbd08, + 0x361685, + 0x2a2808, + 0x27340a, + 0x28a344, + 0x2f1c86, + 0x2d8c07, + 0x21bb47, + 0x2d0bc9, + 0x21b445, + 0x2b5d04, + 0x2b8b8a, + 0x2bf109, + 0x369ac7, + 0x299e86, + 0x35b206, + 0x28b586, + 0x380d06, + 0x2db60f, + 0x2dbbc9, + 0x238a86, + 0x388206, + 0x32c149, + 0x2b7807, + 0x21a003, + 0x22b586, + 0x20ecc3, + 0x3590c8, + 0x2d4747, + 0x2a3789, + 0x2b42c8, + 0x3babc8, + 0x361906, + 0x30c049, + 0x37c885, + 0x2b78c4, + 0x2f95c7, + 0x26b745, + 0x20d884, + 0x232a88, + 0x211544, + 0x2b7547, + 0x342646, + 0x2a9685, + 0x2acc88, + 0x35b0cb, + 0x3125c7, + 0x241086, + 0x2ca444, + 0x327d06, + 0x269fc5, + 0x237305, + 0x2834c9, + 0x286509, + 0x281d84, + 0x281dc5, + 0x20fdc5, + 0x24bac6, + 0x3121c8, + 0x2c1646, + 0x3b594b, + 0x383c4a, + 0x2be905, + 0x290286, + 0x27d305, + 0x3c2585, + 0x295847, + 0x201688, + 0x2925c4, + 0x265cc6, + 0x292f06, + 0x20d1c7, + 0x31fe04, + 0x280786, + 0x3b7905, + 0x3b7909, + 0x2dc984, + 0x2c4a49, + 0x27c186, + 0x2c3f08, + 0x20fdc5, + 0x3827c5, + 0x3102c6, + 0x366cc9, + 0x2125c9, + 0x26bec6, + 0x2e89c8, + 0x2961c8, + 0x27d2c4, + 0x2b99c4, + 0x2b99c8, + 0x28e9c8, + 0x35f9c9, + 0x2999c6, + 0x2a2dc6, + 0x33ae0d, + 0x301806, + 0x2b32c9, + 0x223945, + 0x20ed06, + 0x206548, + 0x337dc5, + 0x237184, + 0x269fc5, + 0x286048, + 0x29d189, + 0x278b04, + 0x2bb2c6, + 0x30da0a, + 0x3029c8, + 0x306b49, + 0x26a8ca, + 0x3933c6, + 0x29bfc8, + 0x2439c5, + 0x29f608, + 0x2f6245, + 0x213109, + 0x33d7c9, + 0x219482, + 0x2537c5, + 0x270f46, + 0x27c0c7, + 0x244705, + 0x2f35c6, + 0x316b48, + 0x2adc06, + 0x2bc149, + 0x27ac46, + 0x285648, + 0x26c285, + 0x34b8c6, + 0x330748, + 0x2854c8, + 0x304348, + 0x318e48, + 0x20a7c4, + 0x250c83, + 0x2bc384, + 0x2845c6, + 0x281444, + 0x344c87, + 0x304609, + 0x2c9285, + 0x20a406, + 0x22b586, + 0x29c44b, + 0x2b54c6, + 0x363506, + 0x2cda88, + 0x2e6006, + 0x26e303, + 0x3da583, + 0x2bfd04, + 0x22f845, + 0x2edc07, + 0x278c88, + 0x278c8f, + 0x27f50b, + 0x311fc8, + 0x2bb346, + 0x3122ce, + 0x241243, + 0x2edb84, + 0x2b5445, + 0x2b5b86, + 0x2912cb, + 0x294d46, + 0x225b49, + 0x2a9685, + 0x253dc8, + 0x3c7cc8, + 0x21248c, + 0x2a2006, + 0x2d65c6, + 0x2dcb05, + 0x28a5c8, + 0x27cc85, + 0x35e8c8, + 0x29dd8a, + 0x2a0a89, + 0x731a84, + 0x2000c2, + 0x45e02782, + 0x200382, + 0x222884, + 0x2024c2, + 0x3216c4, + 0x202642, + 0x13c3, + 0x2003c2, + 0x202002, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x206b43, + 0x23cf83, + 0x240b03, + 0x241844, + 0x22d7c3, + 0x236204, + 0x233743, + 0x2dd2c4, + 0x220583, + 0x2449c7, + 0x205e03, + 0x2013c3, + 0x2fb908, + 0x23cf83, + 0x27ee0b, + 0x2f7043, + 0x239606, + 0x21be02, + 0x2f060b, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x23cf83, + 0x206a03, + 0x217583, + 0x2000c2, + 0xa14c8, + 0x216685, + 0x237388, + 0x300ec8, + 0x202782, + 0x32ee85, + 0x3b4687, + 0x201242, + 0x2421c7, + 0x200382, + 0x25d047, + 0x308789, + 0x2c99c8, + 0x205009, + 0x20b2c2, + 0x3c7e87, + 0x36b004, + 0x3b4747, + 0x383b47, + 0x25d602, + 0x205e03, + 0x200e82, + 0x202642, + 0x2003c2, + 0x202142, + 0x200902, + 0x202002, + 0x2abec5, + 0x2a9785, + 0x2782, + 0x33743, + 0x22d7c3, + 0x233743, + 0x2053c3, + 0x220583, + 0x209a03, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x6df83, + 0x23cf83, + 0xaec3, + 0x101, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x219e43, + 0x206b43, + 0x6df83, + 0x23cf83, + 0x214703, + 0x490726c6, + 0x45dc3, + 0xca685, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x6df83, + 0x23cf83, + 0x6942, + 0xa14c8, + 0x12bd03, + 0x13c3, + 0x6df83, + 0x47984, + 0x1421d04, + 0xe7b05, + 0x2000c2, + 0x391904, + 0x22d7c3, + 0x233743, + 0x220583, + 0x23d9c3, + 0x22e1c5, + 0x219e43, + 0x214903, + 0x206b43, + 0x251ac3, + 0x23cf83, + 0x202003, + 0x2418c3, + 0x207b83, + 0x5c2, + 0x2ebc2, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x2000c2, + 0x24ce83, + 0x202782, + 0x233743, + 0x220583, + 0x222884, + 0x206b43, + 0x23cf83, + 0x202002, + 0xa14c8, + 0x220583, + 0x6df83, + 0xa14c8, + 0x6df83, + 0x26f283, + 0x22d7c3, + 0x230944, + 0x233743, + 0x220583, + 0x2067c2, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x2067c2, + 0x22a243, + 0x206b43, + 0x23cf83, + 0x2ef083, + 0x202003, + 0x2000c2, + 0x202782, + 0x220583, + 0x206b43, + 0x23cf83, + 0x239605, + 0x11a406, + 0x241844, + 0x21be02, + 0xa14c8, + 0x2000c2, + 0x12dac5, + 0x1cb48, + 0x161c03, + 0x202782, + 0x4d8947c6, + 0xe184, + 0x10cd0b, + 0x35246, + 0x5f07, + 0x233743, + 0x4c108, + 0x4c10b, + 0x4c58b, + 0x4cc0b, + 0x4cf4b, + 0x4d20b, + 0x4d64b, + 0x9d86, + 0x220583, + 0x1b8e85, + 0x131844, + 0x218dc3, + 0x118c87, + 0xe1284, + 0x6d0c4, + 0x206b43, + 0x6bfc6, + 0xb2bc4, + 0x6df83, + 0x23cf83, + 0x2f7dc4, + 0x12d947, + 0x11a009, + 0x10cac8, + 0x14a504, + 0xec046, + 0x140fc8, + 0x141185, + 0x1da6c9, + 0x2fe03, + 0x12dac5, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x2013c3, + 0x23cf83, + 0x2f7043, + 0x21be02, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x219c83, + 0x205184, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x2dd2c4, + 0x220583, + 0x206b43, + 0x23cf83, + 0x239606, + 0x233743, + 0x220583, + 0x3d443, + 0x6df83, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x12dac5, + 0x5f07, + 0xe9c3, + 0x2fe03, + 0xa14c8, + 0x220583, + 0x22d7c3, + 0x233743, + 0x220583, + 0x89003, + 0x206b43, + 0x23cf83, + 0x50e2d7c3, + 0x233743, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x2000c2, + 0x202782, + 0x22d7c3, + 0x220583, + 0x206b43, + 0x2003c2, + 0x23cf83, + 0x33dd07, + 0x2c67cb, + 0x2165c3, + 0x31ec48, + 0x32c807, + 0x20f286, + 0x215b85, + 0x32efc9, + 0x205b88, + 0x37ab89, + 0x3a5d10, + 0x37ab8b, + 0x2e1d89, + 0x20e9c3, + 0x2f0cc9, + 0x232006, + 0x23200c, + 0x216748, + 0x3d8588, + 0x308c49, + 0x2b948e, + 0x30854b, + 0x336d4c, + 0x20a683, + 0x2802cc, + 0x3c6089, + 0x306487, + 0x23368c, + 0x2b0cca, + 0x24ec04, + 0x305a8d, + 0x280188, + 0x3c544d, + 0x287b86, + 0x24184b, + 0x31a189, + 0x388487, + 0x372586, + 0x274c09, + 0x327eca, + 0x3243c8, + 0x2f6c44, + 0x38dc07, + 0x231447, + 0x201c84, + 0x217444, + 0x200ac9, + 0x371bc9, + 0x28da08, + 0x20ab05, + 0x20b205, + 0x3dc286, + 0x305949, + 0x27368d, + 0x2fdbc8, + 0x3dc187, + 0x215c08, + 0x250a06, + 0x22e3c4, + 0x2850c5, + 0x3c1a46, + 0x3c33c4, + 0x3c5f87, + 0x3d10ca, + 0x20c184, + 0x211146, + 0x212109, + 0x21210f, + 0x212e0d, + 0x2136c6, + 0x21c750, + 0x21cb46, + 0x21d247, + 0x21da87, + 0x21da8f, + 0x21ec49, + 0x224a46, + 0x225087, + 0x225088, + 0x225e89, + 0x3d2008, + 0x2ece07, + 0x216683, + 0x22d646, + 0x3c3ac8, + 0x2b974a, + 0x3785c9, + 0x205cc3, + 0x32ed86, + 0x265b0a, + 0x2f2087, + 0x3062ca, + 0x21f60e, + 0x21ed86, + 0x2df347, + 0x2aa086, + 0x242d46, + 0x396d8b, + 0x21608a, + 0x2c6e0d, + 0x3c1e07, + 0x268908, + 0x268909, + 0x26890f, + 0x2b6ecc, + 0x2729c9, + 0x2e454e, + 0x244aca, + 0x2d5a86, + 0x3d9b86, + 0x3264cc, + 0x33934c, + 0x34b0c8, + 0x36a8c7, + 0x235905, + 0x294b44, + 0x20278e, + 0x2663c4, + 0x329007, + 0x3d6d0a, + 0x22c794, + 0x22d08f, + 0x21dc48, + 0x22d508, + 0x351a8d, + 0x351a8e, + 0x22d989, + 0x22e808, + 0x22e80f, + 0x23338c, + 0x23338f, + 0x234507, + 0x236b0a, + 0x24748b, + 0x239c48, + 0x23ac47, + 0x26014d, + 0x336146, + 0x305c46, + 0x23c949, + 0x25b608, + 0x242b48, + 0x242b4e, + 0x2c68c7, + 0x2fc1c5, + 0x247745, + 0x200f04, + 0x20f546, + 0x28d908, + 0x30ae43, + 0x2cb98e, + 0x260508, + 0x2a688b, + 0x26f447, + 0x22a2c5, + 0x26ec06, + 0x2ad3c7, + 0x347a08, + 0x38ca49, + 0x3cee45, + 0x289488, + 0x221746, + 0x3a7a4a, + 0x202689, + 0x233749, + 0x23374b, + 0x30a308, + 0x201b49, + 0x20abc6, + 0x24998a, + 0x35660a, + 0x236d0c, + 0x335f07, + 0x2c97ca, + 0x346ecb, + 0x346ed9, + 0x32ab08, + 0x239685, + 0x260306, + 0x26aec9, + 0x2c9ec6, + 0x378d0a, + 0x205d86, + 0x202404, + 0x2cc70d, + 0x202407, + 0x221b09, + 0x24adc5, + 0x24b648, + 0x24bec9, + 0x24e444, + 0x24eb07, + 0x24eb08, + 0x24fcc7, + 0x267e88, + 0x254907, + 0x39fd05, + 0x25b10c, + 0x25b809, + 0x2e0b8a, + 0x3aacc9, + 0x2f0dc9, + 0x387fcc, + 0x25de8b, + 0x25f048, + 0x260908, + 0x264044, + 0x2872c8, + 0x288c09, + 0x2b0d87, + 0x212346, + 0x29cfc7, + 0x29b1c9, + 0x3cbb0b, + 0x327b87, + 0x38b307, + 0x28e147, + 0x3c53c4, + 0x3c53c5, + 0x2dcfc5, + 0x354a0b, + 0x3b6784, + 0x3a1308, + 0x2cb60a, + 0x221807, + 0x3d81c7, + 0x290a92, + 0x28c186, + 0x22fac6, + 0x37f0ce, + 0x317f46, + 0x295548, + 0x295b8f, + 0x3c5808, + 0x3979c8, + 0x342b4a, + 0x342b51, + 0x2a46ce, + 0x20434a, + 0x20434c, + 0x22ea07, + 0x22ea10, + 0x3bf148, + 0x2a48c5, + 0x2ad9ca, + 0x3c340c, + 0x297c0d, + 0x209a06, + 0x3c8207, + 0x3c820c, + 0x209a0c, + 0x21c44c, + 0x2af28b, + 0x38a844, + 0x226704, + 0x2b0589, + 0x37af87, + 0x39c749, + 0x356449, + 0x2b0987, + 0x2b0b46, + 0x2b0b49, + 0x2b0f43, + 0x2add0a, + 0x31f807, + 0x372e0b, + 0x2c6c8a, + 0x36b084, + 0x3997c6, + 0x284649, + 0x39ffc4, + 0x2f378a, + 0x241385, + 0x2c03c5, + 0x2c03cd, + 0x2c070e, + 0x2bc4c5, + 0x33c9c6, + 0x239207, + 0x25b38a, + 0x2666c6, + 0x2ee984, + 0x305e07, + 0x2d934b, + 0x267b87, + 0x2503c4, + 0x2b1a46, + 0x2b1a4d, + 0x2dfc0c, + 0x212a06, + 0x2fddca, + 0x2a9b06, + 0x2f7888, + 0x23aa87, + 0x24b30a, + 0x249bc6, + 0x2066c3, + 0x2066c6, + 0x3c3948, + 0x2b070a, + 0x287887, + 0x287888, + 0x2d4344, + 0x291007, + 0x2d87c8, + 0x29f788, + 0x292348, + 0x2d198a, + 0x2e43c5, + 0x30bc87, + 0x3a8e13, + 0x2588c6, + 0x21a048, + 0x222049, + 0x242088, + 0x36198b, + 0x3baf48, + 0x26a304, + 0x358686, + 0x322146, + 0x319089, + 0x3d8747, + 0x25b208, + 0x29f906, + 0x2f9d44, + 0x3a4dc5, + 0x2d00c8, + 0x203e4a, + 0x2cc388, + 0x2d1406, + 0x29c1ca, + 0x2b6a48, + 0x2d7848, + 0x2d8dc8, + 0x2d9886, + 0x2dbf06, + 0x3aa78c, + 0x2dc3d0, + 0x2a6345, + 0x31dfc8, + 0x31dfd0, + 0x3c5610, + 0x3a5b8e, + 0x3aa40e, + 0x3aa414, + 0x3b008f, + 0x3b0446, + 0x204211, + 0x201d53, + 0x2021c8, + 0x360c45, + 0x31f188, + 0x37e385, + 0x33304c, + 0x227989, + 0x294989, + 0x227e07, + 0x235fc9, + 0x3788c7, + 0x35b4c6, + 0x284ec7, + 0x2075c5, + 0x20af03, + 0x30b009, + 0x24c8c9, + 0x23d443, + 0x2192c4, + 0x21ff8d, + 0x38ce0f, + 0x2f9d85, + 0x332f46, + 0x217c47, + 0x2164c7, + 0x3da906, + 0x3da90b, + 0x2a5d05, + 0x25c706, + 0x303647, + 0x254e09, + 0x224446, + 0x384245, + 0x3cc78b, + 0x3b5086, + 0x3c7a05, + 0x23da48, + 0x28bf48, + 0x2a100c, + 0x2a1010, + 0x2a7a49, + 0x2b1e87, + 0x324c8b, + 0x2eb106, + 0x2eccca, + 0x206a8b, + 0x2ee08a, + 0x2ee306, + 0x2eef45, + 0x32c706, + 0x27ae08, + 0x227eca, + 0x35171c, + 0x2f710c, + 0x2f7408, + 0x239605, + 0x38a147, + 0x21f4c6, + 0x3494c5, + 0x215f46, + 0x3daac8, + 0x2bf387, + 0x2b9388, + 0x25898a, + 0x217d4c, + 0x2c7289, + 0x20a587, + 0x246984, + 0x247806, + 0x39754a, + 0x356545, + 0x2170cc, + 0x21bf48, + 0x2aa388, + 0x2d49cc, + 0x3587cc, + 0x36abc9, + 0x36ae07, + 0x24a14c, + 0x228184, + 0x24a60a, + 0x314a4c, + 0x25690b, + 0x256f8b, + 0x259b06, + 0x25ee87, + 0x22ec47, + 0x22ec4f, + 0x307851, + 0x2e2e12, + 0x2641cd, + 0x2641ce, + 0x26450e, + 0x3b0248, + 0x3b0252, + 0x269ac8, + 0x222687, + 0x2528ca, + 0x2a8108, + 0x317f05, + 0x2b4b4a, + 0x21cec7, + 0x2e8684, + 0x203843, + 0x236745, + 0x342dc7, + 0x34e287, + 0x297e0e, + 0x31d5cd, + 0x326a89, + 0x255c85, + 0x352a03, + 0x337986, + 0x25cd05, + 0x2a6ac8, + 0x2bcf89, + 0x260345, + 0x26034f, + 0x2dadc7, + 0x215a05, + 0x26fe0a, + 0x3bf6c6, + 0x2f9889, + 0x37b50c, + 0x3bcfc9, + 0x3d1b06, + 0x2cb40c, + 0x33b8c6, + 0x304fc8, + 0x305fc6, + 0x33f806, + 0x2b5644, + 0x31ddc3, + 0x32358a, + 0x28e451, + 0x2818ca, + 0x27d185, + 0x355ac7, + 0x258d07, + 0x2d88c4, + 0x2d88cb, + 0x204e88, + 0x2be3c6, + 0x2326c5, + 0x32a284, + 0x243089, + 0x2008c4, + 0x242987, + 0x380385, + 0x380387, + 0x37f305, + 0x2535c3, + 0x222548, + 0x31f38a, + 0x2166c3, + 0x2166ca, + 0x27eb06, + 0x2600cf, + 0x3d3489, + 0x2cb910, + 0x2fd448, + 0x2d2049, + 0x298b07, + 0x2b19cf, + 0x393804, + 0x2dd344, + 0x21c9c6, + 0x3ac106, + 0x2ed80a, + 0x2574c6, + 0x394fc7, + 0x3152c8, + 0x3154c7, + 0x316907, + 0x31820a, + 0x31720b, + 0x328805, + 0x2e2a48, + 0x21b2c3, + 0x3ba74c, + 0x351e0f, + 0x23570d, + 0x259307, + 0x326bc9, + 0x225547, + 0x23be88, + 0x22c98c, + 0x26a208, + 0x23d708, + 0x33290e, + 0x345b14, + 0x346024, + 0x35d98a, + 0x37b14b, + 0x378984, + 0x378989, + 0x2f1d08, + 0x2484c5, + 0x30a94a, + 0x260747, + 0x21e744, + 0x24ce83, + 0x22d7c3, + 0x236204, + 0x233743, + 0x220583, + 0x222884, + 0x219e43, + 0x205e03, + 0x2dc3c6, + 0x205184, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x2000c2, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x236204, + 0x233743, + 0x220583, + 0x219e43, + 0x2dc3c6, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x228843, + 0x206b43, + 0x6df83, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x205184, + 0x206b43, + 0x23cf83, + 0x2000c2, + 0x24de03, + 0x202782, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x205cc2, + 0x235d82, + 0x202782, + 0x22d7c3, + 0x206742, + 0x2005c2, + 0x222884, + 0x3216c4, + 0x228d42, + 0x205184, + 0x2003c2, + 0x23cf83, + 0x213c43, + 0x259b06, + 0x2195c2, + 0x207d82, + 0x223f82, + 0x5361f043, + 0x53a04343, + 0x59646, + 0x59646, + 0x241844, + 0x2013c3, + 0x8d78a, + 0x1721cc, + 0x1dca0c, + 0xca48d, + 0x12dac5, + 0x8cf0c, + 0x2afc7, + 0xc946, + 0x13848, + 0x1b047, + 0x20a08, + 0x18930a, + 0x1142c7, + 0x5468d145, + 0xdee89, + 0x34f8b, + 0x17830b, + 0x1c6408, + 0x5f89, + 0x18c58a, + 0x17598e, + 0x8f68d, + 0x1441e8b, + 0xdfaca, + 0xe184, + 0x5c846, + 0x160308, + 0x6c648, + 0x3fbc7, + 0xbb45, + 0x19447, + 0x80b89, + 0x1a0047, + 0x18b08, + 0x29009, + 0x4aec4, + 0x4fe45, + 0x16364e, + 0x6c2cd, + 0x5d88, + 0x54a6e4c6, + 0x55571a08, + 0x76248, + 0x13df10, + 0x5784c, + 0x65247, + 0x66287, + 0x6a407, + 0x70c47, + 0x37482, + 0x13be07, + 0x1c1f46, + 0x1624c, + 0x198c85, + 0x1cc607, + 0xa7906, + 0xa8549, + 0xaa8c8, + 0x373c2, + 0x5c2, + 0x18bb06, + 0x1c4a0b, + 0x1c4d06, + 0x1091c4, + 0x45647, + 0xe4e09, + 0x504c9, + 0x17f8c8, + 0x4d442, + 0x191789, + 0xc548, + 0xed64a, + 0x6d06, + 0xcea89, + 0xdfa47, + 0xe0189, + 0xe22c8, + 0xe32c7, + 0xe4349, + 0xe9c45, + 0xe9fd0, + 0x178f46, + 0x45585, + 0x1667c7, + 0xebccd, + 0x409c5, + 0xf0bc6, + 0xf1407, + 0xf7dd8, + 0x1a03c8, + 0x10ba8a, + 0x16f82, + 0x56d4a, + 0x6ca4d, + 0x1bc2, + 0x5bac6, + 0x51488, + 0x49f88, + 0x6d8c9, + 0x115f88, + 0x7b54e, + 0x6db08, + 0x137987, + 0x55b08104, + 0x10ec4d, + 0x100185, + 0x109f48, + 0x1abcc8, + 0x10f346, + 0xd2c2, + 0x53844, + 0x33d86, + 0xec046, + 0xa842, + 0x401, + 0x5ed07, + 0x117c83, + 0x54ef8644, + 0x55296943, + 0xc1, + 0x11746, + 0xc1, + 0x201, + 0x11746, + 0x117c83, + 0x418c3, + 0x9a544, + 0x147da45, + 0x52184, + 0x65387, + 0x2782, + 0x24ec04, + 0x22d7c3, + 0x251184, + 0x222884, + 0x206b43, + 0x221f05, + 0x214703, + 0x25b583, + 0x3da885, + 0x207b83, + 0xe583, + 0x56a2d7c3, + 0x233743, + 0x4183, + 0x220583, + 0x200181, + 0x14903, + 0x205e03, + 0x3216c4, + 0x205184, + 0x206b43, + 0x23cf83, + 0x202003, + 0xa14c8, + 0x2000c2, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x228843, + 0x2005c2, + 0x222884, + 0x219e43, + 0x205e03, + 0x206b43, + 0x2013c3, + 0x23cf83, + 0x207b83, + 0xa14c8, + 0x1213c7, + 0x2782, + 0x1a4d45, + 0x5798f, + 0xdac46, + 0x144b148, + 0x11630e, + 0x57a0f9c2, + 0x32bd88, + 0x310446, + 0x252306, + 0x30fdc7, + 0x57e01cc2, + 0x583d3308, + 0x21538a, + 0x264cc8, + 0x200b02, + 0x31f649, + 0x328847, + 0x2122c6, + 0x222289, + 0x30bdc4, + 0x20f186, + 0x2c5bc4, + 0x2072c4, + 0x25ab09, + 0x314786, + 0x22c345, + 0x2684c5, + 0x22df07, + 0x2c2ac7, + 0x28c3c4, + 0x310006, + 0x2f9045, + 0x218c85, + 0x27d245, + 0x2af587, + 0x26f285, + 0x24c349, + 0x3ccec5, + 0x347b44, + 0x266607, + 0x330b8e, + 0x360849, + 0x37ef89, + 0x335d46, + 0x23e788, + 0x24378b, + 0x367ecc, + 0x34d746, + 0x336c07, + 0x2b2a45, + 0x21744a, + 0x28db09, + 0x203489, + 0x3d5546, + 0x303405, + 0x247ac5, + 0x34a009, + 0x27d3cb, + 0x2e1886, + 0x350706, + 0x202c44, + 0x290746, + 0x2fc248, + 0x3b7506, + 0x357086, + 0x3c6d48, + 0x3d1907, + 0x3d5309, + 0x3d7485, + 0xa14c8, + 0x3cedc4, + 0x316e84, + 0x20b085, + 0x343e09, + 0x2214c7, + 0x2214cb, + 0x2245ca, + 0x2278c5, + 0x586022c2, + 0x2c6b47, + 0x58a27bc8, + 0x3d5787, + 0x2bdf05, + 0x35cd4a, + 0x2782, + 0x279acb, + 0x27f74a, + 0x24c7c6, + 0x22a2c3, + 0x36f7cd, + 0x3a864c, + 0x3b568d, + 0x231085, + 0x27a785, + 0x30ae87, + 0x3dac89, + 0x215286, + 0x257345, + 0x2eed48, + 0x290643, + 0x3011c8, + 0x290648, + 0x2c7d47, + 0x32af88, + 0x3a8449, + 0x2cbec7, + 0x2c6347, + 0x27d8c8, + 0x31ad44, + 0x31ad47, + 0x287a88, + 0x35e006, + 0x39990f, + 0x2e5007, + 0x358d86, + 0x36af45, + 0x224103, + 0x249d47, + 0x387183, + 0x24ff86, + 0x252086, + 0x252f86, + 0x294045, + 0x267e83, + 0x391408, + 0x388d49, + 0x39a54b, + 0x253108, + 0x2545c5, + 0x2563c5, + 0x58eb06c2, + 0x284f89, + 0x222907, + 0x25c785, + 0x25aa07, + 0x25c046, + 0x380bc5, + 0x25cb4b, + 0x25f044, + 0x264885, + 0x2649c7, + 0x277f46, + 0x278385, + 0x2874c7, + 0x287e07, + 0x2d2944, + 0x28cd0a, + 0x28ee48, + 0x243a49, + 0x368a85, + 0x2b2dc6, + 0x2fc40a, + 0x2683c6, + 0x22cd47, + 0x2c9b4d, + 0x2a5849, + 0x341d45, + 0x202d07, + 0x330f88, + 0x330508, + 0x21fa47, + 0x32e906, + 0x222c87, + 0x251b03, + 0x314704, + 0x37d145, + 0x3a9b07, + 0x3ae709, + 0x22ac48, + 0x22cc45, + 0x24b544, + 0x24cac5, + 0x2532cd, + 0x202082, + 0x2c1346, + 0x25ba06, + 0x2fe5ca, + 0x390dc6, + 0x397485, + 0x2c6085, + 0x2c6087, + 0x3a788c, + 0x2760ca, + 0x290406, + 0x2dbe05, + 0x290586, + 0x2908c7, + 0x292046, + 0x293f4c, + 0x2223c9, + 0x59211bc7, + 0x295f45, + 0x295f46, + 0x2963c8, + 0x2bca45, + 0x2a6545, + 0x2a6f08, + 0x2a710a, + 0x5967a482, + 0x59a08402, + 0x300945, + 0x281443, + 0x229d88, + 0x20b443, + 0x2a7384, + 0x2f99cb, + 0x3c72c8, + 0x2b1588, + 0x59fcc049, + 0x2abbc9, + 0x2ac306, + 0x2ad048, + 0x2ad249, + 0x2ae3c6, + 0x2ae545, + 0x24a8c6, + 0x2aed09, + 0x2ba987, + 0x34b786, + 0x21d087, + 0x3731c7, + 0x21f1c4, + 0x5a3a06c9, + 0x349708, + 0x3d3208, + 0x23fd07, + 0x2caf06, + 0x3c7789, + 0x2522c7, + 0x348f8a, + 0x369508, + 0x212c47, + 0x224f06, + 0x2ad5ca, + 0x231808, + 0x2e8745, + 0x2269c5, + 0x351147, + 0x31c689, + 0x3208cb, + 0x355d88, + 0x3ccf49, + 0x253a47, + 0x2bbd8c, + 0x2bc60c, + 0x2bc90a, + 0x2bcb8c, + 0x2c5748, + 0x2c5948, + 0x2c5b44, + 0x2c74c9, + 0x2c7709, + 0x2c794a, + 0x2c7bc9, + 0x2c7f07, + 0x3d5b4c, + 0x20ca46, + 0x2c9508, + 0x268486, + 0x3a3386, + 0x341c47, + 0x21fbc8, + 0x20f74b, + 0x3d5647, + 0x25a7c9, + 0x285189, + 0x355c07, + 0x2c5e04, + 0x2fa147, + 0x20a286, + 0x20ddc6, + 0x2fdf85, + 0x2cec48, + 0x294884, + 0x294886, + 0x275f8b, + 0x2ae009, + 0x250ac6, + 0x357289, + 0x20b146, + 0x204048, + 0x218983, + 0x303585, + 0x222a89, + 0x224805, + 0x37e504, + 0x277486, + 0x23c705, + 0x257bc6, + 0x31a607, + 0x346dc6, + 0x22bb0b, + 0x249887, + 0x2554c6, + 0x210046, + 0x22dfc6, + 0x28c389, + 0x2fa54a, + 0x2be6c5, + 0x3b518d, + 0x2a7206, + 0x38fac6, + 0x2cb806, + 0x2f7805, + 0x2ea2c7, + 0x22a587, + 0x273bce, + 0x205e03, + 0x2caec9, + 0x245009, + 0x22dc47, + 0x226247, + 0x237d85, + 0x210205, + 0x5a600c0f, + 0x2d2287, + 0x2d2448, + 0x2d3144, + 0x2d3586, + 0x5aa477c2, + 0x2d9b06, + 0x2dc3c6, + 0x2451ce, + 0x30100a, + 0x2b6546, + 0x21ba0a, + 0x3c2989, + 0x234045, + 0x305488, + 0x31d886, + 0x29d808, + 0x329788, + 0x27958b, + 0x30fec5, + 0x26f308, + 0x3c6e8c, + 0x2bddc7, + 0x252806, + 0x2e5888, + 0x20f408, + 0x5ae4fd42, + 0x20ef4b, + 0x3d7689, + 0x28d5c9, + 0x21b707, + 0x3c4f88, + 0x5b397048, + 0x20e7cb, + 0x37f749, + 0x25db4d, + 0x3295c8, + 0x2ad7c8, + 0x5b601642, + 0x3cbec4, + 0x5ba2ebc2, + 0x3b0a06, + 0x5be01102, + 0x2f500a, + 0x2ab406, + 0x238348, + 0x3be948, + 0x248ec6, + 0x337106, + 0x2fd1c6, + 0x2a6a45, + 0x23a1c4, + 0x5c238884, + 0x355586, + 0x296e47, + 0x5c60c687, + 0x26c08b, + 0x3d5989, + 0x27a7ca, + 0x206944, + 0x2c61c8, + 0x34b54d, + 0x2f5b89, + 0x2f5dc8, + 0x2f6049, + 0x2f7dc4, + 0x247344, + 0x25ebc5, + 0x36824b, + 0x3c7246, + 0x3553c5, + 0x2eb909, + 0x3100c8, + 0x238a04, + 0x2175c9, + 0x237605, + 0x2c2b08, + 0x2c6a07, + 0x37f388, + 0x284846, + 0x3d1ec7, + 0x2e1049, + 0x3cc909, + 0x3c7a85, + 0x36ff45, + 0x5ca12cc2, + 0x347904, + 0x217fc5, + 0x30fcc6, + 0x37a1c5, + 0x2edec7, + 0x299f85, + 0x277f84, + 0x335e06, + 0x2573c7, + 0x2ff786, + 0x321d85, + 0x210608, + 0x310645, + 0x214887, + 0x221109, + 0x2ae14a, + 0x22b147, + 0x22b14c, + 0x22c306, + 0x23ce09, + 0x37ff05, + 0x38ad48, + 0x209f43, + 0x20ab85, + 0x209f45, + 0x303b07, + 0x5ce03542, + 0x2f0187, + 0x2e7f46, + 0x3ce746, + 0x2eb246, + 0x20f346, + 0x2ddf88, + 0x31f2c5, + 0x358e47, + 0x358e4d, + 0x203843, + 0x20cf05, + 0x26fbc7, + 0x2f04c8, + 0x26f785, + 0x213e88, + 0x39c646, + 0x2df047, + 0x2c9445, + 0x30ff46, + 0x391985, + 0x21504a, + 0x2f9406, + 0x282187, + 0x31e445, + 0x3a6707, + 0x305d84, + 0x37e486, + 0x3053c5, + 0x216bcb, + 0x20a109, + 0x24df0a, + 0x3c7b08, + 0x348348, + 0x30d40c, + 0x30ef47, + 0x311dc8, + 0x313f88, + 0x314d05, + 0x350f0a, + 0x352a09, + 0x5d202702, + 0x3c0806, + 0x246dc4, + 0x246dc9, + 0x270a09, + 0x277987, + 0x2b4907, + 0x3562c9, + 0x2d1b88, + 0x2d1b8f, + 0x223686, + 0x2deb4b, + 0x2669c5, + 0x2669c7, + 0x374c49, + 0x217546, + 0x217547, + 0x2e3185, + 0x230f84, + 0x267586, + 0x221684, + 0x2b5287, + 0x2b3688, + 0x5d703308, + 0x304885, + 0x3049c7, + 0x32ac89, + 0x20ed04, + 0x240588, + 0x5da72b88, + 0x2d88c4, + 0x347e48, + 0x372644, + 0x3b5489, + 0x219f85, + 0x5de1be02, + 0x2236c5, + 0x2e38c5, + 0x202b48, + 0x234347, + 0x5e2008c2, + 0x2389c5, + 0x2d76c6, + 0x232e06, + 0x3478c8, + 0x34ab88, + 0x37a186, + 0x37ae06, + 0x321489, + 0x3ce686, + 0x2195cb, + 0x31f585, + 0x2a8046, + 0x2755c8, + 0x3333c6, + 0x39ec86, + 0x21434a, + 0x2abf8a, + 0x273305, + 0x30dcc7, + 0x2f33c6, + 0x5e606842, + 0x26fd07, + 0x25e345, + 0x2fc384, + 0x2fc385, + 0x206846, + 0x271847, + 0x21c9c5, + 0x21fc44, + 0x2d39c8, + 0x39ed45, + 0x3c9707, + 0x3d4145, + 0x214f85, + 0x2ae9c4, + 0x2e6ac9, + 0x2f8e88, + 0x23a946, + 0x3b7ec6, + 0x3cae86, + 0x5eb0f4c8, + 0x30f6c7, + 0x31174d, + 0x312c4c, + 0x313249, + 0x313489, + 0x5ef73c82, + 0x3d2fc3, + 0x20a343, + 0x20a345, + 0x3a9c0a, + 0x33fbc6, + 0x24e305, + 0x31af04, + 0x31af0b, + 0x3340cc, + 0x33534c, + 0x335655, + 0x337b4d, + 0x33964f, + 0x339a12, + 0x339e8f, + 0x33a252, + 0x33a6d3, + 0x33ab8d, + 0x33b14d, + 0x33b4ce, + 0x33ba4e, + 0x33c78c, + 0x33cb4c, + 0x33cf8b, + 0x33da0e, + 0x33e312, + 0x33f98c, + 0x33fe90, + 0x34ba52, + 0x34c6cc, + 0x34cd8d, + 0x34d0cc, + 0x34f611, + 0x35088d, + 0x352c4d, + 0x35324a, + 0x3534cc, + 0x3547cc, + 0x3550cc, + 0x35688c, + 0x35a253, + 0x35a8d0, + 0x35acd0, + 0x35b64d, + 0x35bc4c, + 0x35d6c9, + 0x35ef4d, + 0x35f293, + 0x361fd1, + 0x3627d3, + 0x363c8f, + 0x36404c, + 0x36434f, + 0x36470d, + 0x364d0f, + 0x3650d0, + 0x365b4e, + 0x369c8e, + 0x36b490, + 0x36bf4d, + 0x36c8ce, + 0x36cc4c, + 0x36dc13, + 0x37028e, + 0x370910, + 0x370d11, + 0x37114f, + 0x371513, + 0x37380d, + 0x373b4f, + 0x373f0e, + 0x374490, + 0x374889, + 0x3761d0, + 0x3767cf, + 0x376e4f, + 0x377212, + 0x37940e, + 0x379e0d, + 0x37a54d, + 0x37a88d, + 0x37b80d, + 0x37bb4d, + 0x37be90, + 0x37c28b, + 0x37cf0c, + 0x37d28c, + 0x37d88c, + 0x37db8e, + 0x38b4d0, + 0x38ddd2, + 0x38e24b, + 0x38e58e, + 0x38e90e, + 0x38f18e, + 0x38f60b, + 0x5f38fc56, + 0x390acd, + 0x390f54, + 0x391c4d, + 0x3939d5, + 0x39554d, + 0x395ecf, + 0x39654f, + 0x39a80f, + 0x39abce, + 0x39b14d, + 0x39cc91, + 0x3a2b4c, + 0x3a2e4c, + 0x3a314b, + 0x3a370c, + 0x3a3d8f, + 0x3a4152, + 0x3a480d, + 0x3a590c, + 0x3a68cc, + 0x3a6bcd, + 0x3a6f0f, + 0x3a72ce, + 0x3a98cc, + 0x3a9e8d, + 0x3aa1cb, + 0x3aaa8c, + 0x3ab38d, + 0x3ab6ce, + 0x3aba49, + 0x3ad093, + 0x3ad7cd, + 0x3adecd, + 0x3ae4cc, + 0x3ae94e, + 0x3af04f, + 0x3af40c, + 0x3af70d, + 0x3afa4f, + 0x3afe0c, + 0x3b0c4c, + 0x3b110c, + 0x3b140c, + 0x3b1acd, + 0x3b1e12, + 0x3b2b8c, + 0x3b2e8c, + 0x3b3191, + 0x3b35cf, + 0x3b398f, + 0x3b3d53, + 0x3b5e0e, + 0x3b618f, + 0x3b654c, + 0x5f7b688e, + 0x3b6c0f, + 0x3b6fd6, + 0x3b9f92, + 0x3bc7cc, + 0x3bd60f, + 0x3bdc8d, + 0x3c878f, + 0x3c8b4c, + 0x3c8e4d, + 0x3c918d, + 0x3caa4e, + 0x3cdecc, + 0x3d044c, + 0x3d0750, + 0x3d2351, + 0x3d278b, + 0x3d2bcc, + 0x3d2ece, + 0x3d4591, + 0x3d49ce, + 0x3d4d4d, + 0x3d894b, + 0x3d924f, + 0x3d9e54, + 0x2068c2, + 0x2068c2, + 0x202e03, + 0x2068c2, + 0x202e03, + 0x2068c2, + 0x20c682, + 0x24a905, + 0x3d428c, + 0x2068c2, + 0x2068c2, + 0x20c682, + 0x2068c2, + 0x296a45, + 0x2ae145, + 0x2068c2, + 0x2068c2, + 0x2010c2, + 0x296a45, + 0x338309, + 0x361ccc, + 0x2068c2, + 0x2068c2, + 0x2068c2, + 0x2068c2, + 0x24a905, + 0x2068c2, + 0x2068c2, + 0x2068c2, + 0x2068c2, + 0x2010c2, + 0x338309, + 0x2068c2, + 0x2068c2, + 0x2068c2, + 0x2ae145, + 0x2068c2, + 0x2ae145, + 0x361ccc, + 0x3d428c, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x206b43, + 0x23cf83, + 0x60314887, + 0x1c618f, + 0x24c8, + 0x7b684, + 0x13c3, + 0x1a20c8, + 0x7c44, + 0x2000c2, + 0x60a02782, + 0x23fec3, + 0x250604, + 0x204183, + 0x3dc504, + 0x22fac6, + 0x20ad83, + 0x30e184, + 0x24d985, + 0x205e03, + 0x206b43, + 0x6df83, + 0x23cf83, + 0x21d60a, + 0x259b06, + 0x38ec8c, + 0xa14c8, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x22a243, + 0x2dc3c6, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x2fe03, + 0xa7c88, + 0x6157eac5, + 0x4b8c7, + 0x12dac5, + 0x178449, + 0xdcc2, + 0x6237e2c5, + 0x12dac5, + 0x2afc7, + 0x6da08, + 0x820e, + 0x8abd2, + 0x11f94b, + 0x1143c6, + 0x6268d145, + 0x62a8d14c, + 0x5e4c7, + 0x14c47, + 0x1a0eca, + 0x3b650, + 0x173345, + 0x10cd0b, + 0x6c648, + 0x3fbc7, + 0x19ee0b, + 0x80b89, + 0x4aac7, + 0x1a0047, + 0xe1ac7, + 0x35186, + 0x18b08, + 0x63029f46, + 0x49ec7, + 0x15c646, + 0x6c2cd, + 0x1a0890, + 0x634758c2, + 0x5d88, + 0x3c010, + 0x1818cc, + 0x63b89fcd, + 0x5d348, + 0x5d7cb, + 0x6ad07, + 0x16a549, + 0x59706, + 0x965c8, + 0x7102, + 0x8898a, + 0xde307, + 0x1cc607, + 0xa8549, + 0xaa8c8, + 0x1b8e85, + 0x18bb06, + 0x1c4d06, + 0xf6cce, + 0x23b4e, + 0xa9f4f, + 0xe4e09, + 0x504c9, + 0x8850b, + 0xa224f, + 0xc334c, + 0xbb64b, + 0xe0ac8, + 0x144707, + 0x166308, + 0x18da0b, + 0x194d8c, + 0x19bd4c, + 0x1a3a8c, + 0xafccd, + 0x17f8c8, + 0xefdc2, + 0x191789, + 0xf9708, + 0x1921cb, + 0xcb106, + 0xd6f8b, + 0x13de4b, + 0xe28ca, + 0xe3485, + 0xe9fd0, + 0xec646, + 0x12e406, + 0x45585, + 0x1667c7, + 0xfd6c8, + 0xf1407, + 0xf16c7, + 0x1c6647, + 0x1b084a, + 0xa134a, + 0x5bac6, + 0x94ecd, + 0x49f88, + 0x115f88, + 0xae909, + 0xbacc5, + 0x1aed4c, + 0xafecb, + 0x10d704, + 0x10f109, + 0x10f346, + 0x159546, + 0x1b4886, + 0x7d82, + 0xec046, + 0x10b9cb, + 0x11d447, + 0xa842, + 0xcd9c5, + 0x26c44, + 0x101, + 0x568c3, + 0x62e81606, + 0x96943, + 0x382, + 0x29144, + 0xb02, + 0x41844, + 0x882, + 0x2202, + 0x2c42, + 0x25a42, + 0x5cc2, + 0x8d142, + 0x14c2, + 0xd5e42, + 0x36d82, + 0x37982, + 0x2942, + 0x52282, + 0x33743, + 0x942, + 0x1242, + 0x19d02, + 0xe282, + 0x642, + 0x320c2, + 0x373c2, + 0x3d82, + 0x5e42, + 0x5c2, + 0x19e43, + 0x1b82, + 0x6102, + 0x4d442, + 0x53a42, + 0xb42, + 0x8002, + 0xf1c2, + 0xdf302, + 0x24c2, + 0x1582, + 0x6cec2, + 0x45ec2, + 0x6b43, + 0x602, + 0x4fd42, + 0x13c2, + 0xcc82, + 0x1c7a05, + 0x6a82, + 0x41f42, + 0x3c883, + 0x682, + 0x16f82, + 0x1bc2, + 0x37c2, + 0x3842, + 0x8c2, + 0xd2c2, + 0x7d82, + 0x5f85, + 0x63e0c682, + 0x642cfe83, + 0x20c3, + 0x6460c682, + 0x20c3, + 0x83cc7, + 0x20c443, + 0x2000c2, + 0x22d7c3, + 0x233743, + 0x228843, + 0x2005c3, + 0x22a243, + 0x206b43, + 0x2013c3, + 0x23cf83, + 0x296983, + 0xfc105, + 0x1083, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x228843, + 0x205e03, + 0x206b43, + 0x2013c3, + 0x6df83, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x200181, + 0x205e03, + 0x206b43, + 0x251ac3, + 0x23cf83, + 0x10c9c4, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x205d83, + 0x228843, + 0x251383, + 0x22f503, + 0x2ab3c3, + 0x249743, + 0x220583, + 0x222884, + 0x206b43, + 0x23cf83, + 0x207b83, + 0x201844, + 0x2534c3, + 0xa683, + 0x3c38c3, + 0x32a148, + 0x2ad604, + 0x20020a, + 0x250846, + 0x12aa84, + 0x383407, + 0x21dd8a, + 0x223549, + 0x3ad507, + 0x3b41ca, + 0x24ce83, + 0x3009cb, + 0x2d5809, + 0x2d86c5, + 0x3b0f47, + 0x2782, + 0x22d7c3, + 0x237987, + 0x2e5505, + 0x2c5cc9, + 0x233743, + 0x308386, + 0x2c5103, + 0xa1c3, + 0x119746, + 0x10b206, + 0xad07, + 0x221986, + 0x225a85, + 0x3d7547, + 0x316747, + 0x67220583, + 0x34c907, + 0x3b4983, + 0x20be85, + 0x222884, + 0x26ef88, + 0x379b0c, + 0x2b12c5, + 0x2a59c6, + 0x237847, + 0x20a647, + 0x2660c7, + 0x270048, + 0x31868f, + 0x223785, + 0x23ffc7, + 0x20d547, + 0x2a74ca, + 0x2eeb89, + 0x322805, + 0x32484a, + 0x130246, + 0xbb147, + 0x2c5185, + 0x38e484, + 0x248e06, + 0xbdfc6, + 0x381b47, + 0x2efcc7, + 0x3dae88, + 0x21a205, + 0x2e5406, + 0x25388, + 0x357005, + 0x1571c6, + 0x23bd85, + 0x28ca84, + 0x2376c7, + 0x2dddca, + 0x255988, + 0x361386, + 0x2a243, + 0x2e43c5, + 0x3291c6, + 0x3d5d86, + 0x245486, + 0x205e03, + 0x3a4a87, + 0x20d4c5, + 0x206b43, + 0x2e2b8d, + 0x2013c3, + 0x3daf88, + 0x219344, + 0x278245, + 0x2a73c6, + 0x394206, + 0x2a7f47, + 0x25da07, + 0x283385, + 0x23cf83, + 0x2e9987, + 0x344809, + 0x36a6c9, + 0x32e64a, + 0x2434c2, + 0x20be44, + 0x2ecbc4, + 0x2efb87, + 0x2f0048, + 0x2f24c9, + 0x20cdc9, + 0x2f3a07, + 0xffc09, + 0x3720c6, + 0xf6a46, + 0x2f7dc4, + 0x2f83ca, + 0x2fb488, + 0x2fd089, + 0x3ac386, + 0x2b5e85, + 0x255848, + 0x2cc48a, + 0x210f43, + 0x2019c6, + 0x2f3b07, + 0x357785, + 0x390485, + 0x239703, + 0x23d804, + 0x226985, + 0x287f07, + 0x2f8fc5, + 0x2eea46, + 0x13c285, + 0x28a243, + 0x2b6609, + 0x27800c, + 0x2b9f4c, + 0x2d6d88, + 0x2a4b47, + 0x306148, + 0x106787, + 0x306fca, + 0x30768b, + 0x2d5948, + 0x394308, + 0x239106, + 0x3cad45, + 0x30a10a, + 0x2cfec5, + 0x21be02, + 0x2c9307, + 0x251646, + 0x375145, + 0x30de89, + 0x206145, + 0x31fec5, + 0x2752c9, + 0x329106, + 0x3ba5c8, + 0x26a183, + 0x209046, + 0x2773c6, + 0x31c485, + 0x31c489, + 0x2f2c09, + 0x27e387, + 0x11d2c4, + 0x31d2c7, + 0x20ccc9, + 0x21df85, + 0x3a2c8, + 0x340ec5, + 0x274b05, + 0x377a09, + 0x2020c2, + 0x2e4884, + 0x203f42, + 0x201b82, + 0x38c145, + 0x32a808, + 0x2bac05, + 0x2c80c3, + 0x2c80c5, + 0x2d9d03, + 0x209002, + 0x302284, + 0x2b69c3, + 0x201002, + 0x3cb604, + 0x2ed143, + 0x204f02, + 0x2bac83, + 0x303a84, + 0x2fd643, + 0x25cfc4, + 0x209482, + 0x213b43, + 0x21bb03, + 0x203002, + 0x308102, + 0x2f2a49, + 0x219082, + 0x28ba04, + 0x202242, + 0x2556c4, + 0x372084, + 0x206f04, + 0x207d82, + 0x238d42, + 0x36ad83, + 0x307443, + 0x237b44, + 0x248804, + 0x2ba344, + 0x2d1544, + 0x2fb643, + 0x2446c3, + 0x3301c4, + 0x31fdc4, + 0x3203c6, + 0x22c202, + 0x2782, + 0x409c3, + 0x202782, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x2000c2, + 0x24ce83, + 0x22d7c3, + 0x233743, + 0x208903, + 0x220583, + 0x222884, + 0x2f2d04, + 0x205184, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x2f8984, + 0x32bd43, + 0x2a8fc3, + 0x37a0c4, + 0x340cc6, + 0x218a43, + 0x12dac5, + 0x14c47, + 0x2e6e03, + 0x68a4abc8, + 0x2416c3, + 0x2b3883, + 0x20bec3, + 0x22a243, + 0x35ff85, + 0x1b0f03, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x3410c3, + 0x22f0c3, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x219e43, + 0x206b43, + 0x23b484, + 0x6df83, + 0x23cf83, + 0x21f4c4, + 0x12dac5, + 0x2c1745, + 0x14c47, + 0x202782, + 0x203dc2, + 0x200382, + 0x202642, + 0x13c3, + 0x2003c2, + 0x3304, + 0x22d7c3, + 0x236204, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x205184, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x202003, + 0x241844, + 0xa14c8, + 0x22d7c3, + 0x2013c3, + 0x1083, + 0x14d5c4, + 0x24ec04, + 0xa14c8, + 0x22d7c3, + 0x251184, + 0x222884, + 0x2013c3, + 0x201642, + 0x6df83, + 0x23cf83, + 0x25b583, + 0x3d804, + 0x3da885, + 0x21be02, + 0x3094c3, + 0x131949, + 0xdff06, + 0x109548, + 0x2000c2, + 0xa14c8, + 0x202782, + 0x233743, + 0x220583, + 0x2005c2, + 0x13c3, + 0x23cf83, + 0x79c2, + 0x82, + 0x2000c2, + 0x1b4387, + 0x135b49, + 0x7c303, + 0xa14c8, + 0x25a03, + 0x6c356e87, + 0x2d7c3, + 0x1c0708, + 0x233743, + 0x220583, + 0x3d346, + 0x219e43, + 0x95988, + 0xc4108, + 0x11f086, + 0x205e03, + 0xcf188, + 0xedf43, + 0x6c4e3d46, + 0xea9c5, + 0x33947, + 0x6b43, + 0x4e283, + 0x3cf83, + 0x2102, + 0x19c44a, + 0x4cc3, + 0x18c203, + 0x300204, + 0x11848b, + 0x118a48, + 0x91a82, + 0x1457987, + 0x1530e07, + 0x14c8188, + 0x151e703, + 0x1289cb, + 0x12d947, + 0x6a04, + 0x2000c2, + 0x202782, + 0x236204, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x22a243, + 0x206b43, + 0x23cf83, + 0x21f4c3, + 0x202003, + 0x2fe03, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x1083, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x22a243, + 0x206b43, + 0x23cf83, + 0x2195c2, + 0x2000c1, + 0x2000c2, + 0x200201, + 0x339742, + 0xa14c8, + 0x21c745, + 0x200101, + 0x2d7c3, + 0x30944, + 0x200f01, + 0x200501, + 0x202401, + 0x24a882, + 0x387184, + 0x24a883, + 0x200041, + 0x200801, + 0x200181, + 0x200701, + 0x37e6c7, + 0x31d9cf, + 0x319886, + 0x2004c1, + 0x34d606, + 0x200c01, + 0x200581, + 0x3d8b8e, + 0x2003c1, + 0x23cf83, + 0x201001, + 0x2e4d05, + 0x202102, + 0x239605, + 0x200401, + 0x200741, + 0x2007c1, + 0x21be02, + 0x200081, + 0x201ec1, + 0x203301, + 0x201081, + 0x20a781, + 0x54389, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x214703, + 0x22d7c3, + 0x220583, + 0x919c8, + 0x205e03, + 0x206b43, + 0x4e703, + 0x23cf83, + 0x14ee5c8, + 0x140fc8, + 0x12dac5, + 0xa14c8, + 0x13c3, + 0x12dac5, + 0x43fc4, + 0x3c2c8, + 0x47984, + 0x54389, + 0x14ee5ca, + 0xa14c8, + 0x6df83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x206b43, + 0x23cf83, + 0x20a683, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x2dd2c4, + 0x23cf83, + 0x3451c5, + 0x31f384, + 0x22d7c3, + 0x206b43, + 0x23cf83, + 0x2003, + 0xa7d8a, + 0xf3e84, + 0x122c86, + 0x202782, + 0x22d7c3, + 0x230ec9, + 0x233743, + 0x2ab989, + 0x220583, + 0x205e03, + 0x206b43, + 0x6bfc4, + 0x13c3, + 0x23cf83, + 0x2f7bc8, + 0x2319c7, + 0x3da885, + 0x1d29c8, + 0x1b4387, + 0xf02ca, + 0x6f54b, + 0x14d847, + 0x3e648, + 0x1a050a, + 0x11808, + 0x135b49, + 0x26847, + 0x374c7, + 0x14c8, + 0x1c0708, + 0x4028f, + 0x19a45, + 0x18b307, + 0x3d346, + 0x4e1c7, + 0x122946, + 0x95988, + 0x9e786, + 0x128f07, + 0x12ea49, + 0x10ec7, + 0xb2f09, + 0xbb909, + 0xc14c6, + 0xc4108, + 0xc2c45, + 0x7a30a, + 0xcf188, + 0xedf43, + 0xdaa88, + 0x33947, + 0x172945, + 0x5f550, + 0x4e283, + 0x6df83, + 0x128d87, + 0x22d85, + 0xf19c8, + 0x68885, + 0x18c203, + 0x7048, + 0xc0246, + 0x17c949, + 0xad447, + 0x131c0b, + 0x6d144, + 0x10e984, + 0x11848b, + 0x118a48, + 0x119647, + 0x12dac5, + 0x22d7c3, + 0x233743, + 0x228843, + 0x23cf83, + 0x23de43, + 0x220583, + 0x6df83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x8864b, + 0x2000c2, + 0x202782, + 0x23cf83, + 0xa14c8, + 0x2782, + 0x2000c2, + 0x202782, + 0x200382, + 0x2005c2, + 0x205e02, + 0x206b43, + 0x132f46, + 0x2003c2, + 0x3d804, + 0x2000c2, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x200382, + 0x220583, + 0x219e43, + 0x205e03, + 0x205184, + 0x206b43, + 0x212203, + 0x13c3, + 0x23cf83, + 0x300204, + 0x207b83, + 0x220583, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x2013c3, + 0x23cf83, + 0x3bcc87, + 0x22d7c3, + 0x27c507, + 0x366486, + 0x201f83, + 0x219d03, + 0x220583, + 0x209a03, + 0x222884, + 0x3975c4, + 0x2df1c6, + 0x201d43, + 0x206b43, + 0x23cf83, + 0x3451c5, + 0x309e84, + 0x3a13c3, + 0x2c7183, + 0x2c9307, + 0x2c6985, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x52507, + 0x1667c7, + 0x1a2a05, + 0x20c882, + 0x24a0c3, + 0x20ee03, + 0x24ce83, + 0x7622d7c3, + 0x206742, + 0x233743, + 0x204183, + 0x220583, + 0x222884, + 0x37fa83, + 0x223783, + 0x205e03, + 0x205184, + 0x76602a42, + 0x206b43, + 0x23cf83, + 0x204f03, + 0x21c4c3, + 0x212bc3, + 0x2195c2, + 0x207b83, + 0xa14c8, + 0x220583, + 0x1083, + 0x21e744, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x236204, + 0x233743, + 0x220583, + 0x222884, + 0x219e43, + 0x3b7d44, + 0x3216c4, + 0x2dc3c6, + 0x205184, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x251646, + 0x3540b, + 0x29f46, + 0xebe8a, + 0x11c10a, + 0xa14c8, + 0x225344, + 0x77a2d7c3, + 0x329384, + 0x233743, + 0x2aea44, + 0x220583, + 0x2067c3, + 0x205e03, + 0x206b43, + 0x6df83, + 0x23cf83, + 0x4b283, + 0x3487cb, + 0x3c94ca, + 0x3db44c, + 0xe4148, + 0x2000c2, + 0x202782, + 0x200382, + 0x22e1c5, + 0x222884, + 0x2024c2, + 0x205e03, + 0x3216c4, + 0x202642, + 0x2003c2, + 0x202002, + 0x2195c2, + 0x4ce83, + 0x35d82, + 0x2c1f89, + 0x33f688, + 0x2294c9, + 0x21f009, + 0x2b718a, + 0x32324a, + 0x20a602, + 0x2d5e42, + 0x2782, + 0x22d7c3, + 0x22bdc2, + 0x240186, + 0x376cc2, + 0x203742, + 0x26f8ce, + 0x213b8e, + 0x281287, + 0x212ac7, + 0x251bc2, + 0x233743, + 0x220583, + 0x2191c2, + 0x2005c2, + 0x19c83, + 0x23640f, + 0x237542, + 0x355f47, + 0x2b5707, + 0x2c8c47, + 0x2d164c, + 0x2d36cc, + 0x21e404, + 0x25ea0a, + 0x213ac2, + 0x253a42, + 0x2bd1c4, + 0x200702, + 0x2af602, + 0x2d3904, + 0x212302, + 0x200b42, + 0x14903, + 0x29e807, + 0x23f2c5, + 0x20f1c2, + 0x24e144, + 0x201582, + 0x2e3ec8, + 0x206b43, + 0x3754c8, + 0x204082, + 0x21e5c5, + 0x394b06, + 0x23cf83, + 0x206a82, + 0x2f2707, + 0x2102, + 0x3a46c5, + 0x21fe85, + 0x213f82, + 0x202c02, + 0x204d4a, + 0x28320a, + 0x2801c2, + 0x29ce84, + 0x201202, + 0x20bd08, + 0x20a742, + 0x304d48, + 0x314187, + 0x315089, + 0x21ff02, + 0x31a585, + 0x36a1c5, + 0x21a2cb, + 0x2df74c, + 0x22b8c8, + 0x32d788, + 0x22c202, + 0x2a8002, + 0x2000c2, + 0xa14c8, + 0x202782, + 0x22d7c3, + 0x200382, + 0x202642, + 0x13c3, + 0x2003c2, + 0x23cf83, + 0x202002, + 0x2000c2, + 0x12dac5, + 0x78e02782, + 0x79620583, + 0x214903, + 0x2024c2, + 0x206b43, + 0x379083, + 0x79a3cf83, + 0x2ef083, + 0x283dc6, + 0x1602003, + 0x12dac5, + 0x132e0b, + 0xa14c8, + 0x793caf88, + 0x60ac7, + 0x6d807, + 0x45585, + 0xaafcd, + 0x3d142, + 0x119042, + 0xa8a0a, + 0x83047, + 0x256c4, + 0x25703, + 0x1b4904, + 0x7a205342, + 0x7a600b02, + 0x7aa02442, + 0x7ae026c2, + 0x7b20d242, + 0x7b605cc2, + 0x14c47, + 0x7ba02782, + 0x7be2eec2, + 0x7c21ed42, + 0x7c602942, + 0x213b83, + 0x16f44, + 0x2399c3, + 0x7ca0dd82, + 0x5d348, + 0x7ce05282, + 0x71d87, + 0x7d200042, + 0x7d6012c2, + 0x7da00182, + 0x7de067c2, + 0x7e205e42, + 0x7e6005c2, + 0xd8605, + 0x251e03, + 0x39ffc4, + 0x7ea00702, + 0x7ee03942, + 0x7f206ac2, + 0x7af0b, + 0x7f601442, + 0x7fe4ab82, + 0x802024c2, + 0x80605e02, + 0x80a02dc2, + 0x80e00c02, + 0x81200e82, + 0x8166cec2, + 0x81a02a42, + 0x81e09a42, + 0x82202642, + 0x82616202, + 0x82a6ef42, + 0x82e09b42, + 0xb2bc4, + 0x217a43, + 0x8320a302, + 0x836137c2, + 0x83a11b82, + 0x83e006c2, + 0x842003c2, + 0x84601002, + 0x887c7, + 0x84a13c42, + 0x84e04482, + 0x85202002, + 0x85600ec2, + 0x1aed4c, + 0x85a43982, + 0x85e28202, + 0x86203082, + 0x86606842, + 0x86a0a342, + 0x86e76c02, + 0x87205302, + 0x8760adc2, + 0x87a77742, + 0x87e77c82, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x17343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x7fb7fa83, + 0x217343, + 0x360004, + 0x2293c6, + 0x2fe843, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x308b49, + 0x235d82, + 0x3d3c43, + 0x2bbc03, + 0x202ac5, + 0x204183, + 0x37fa83, + 0x217343, + 0x2a6343, + 0x243283, + 0x245b89, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x37fa83, + 0x217343, + 0x235d82, + 0x235d82, + 0x37fa83, + 0x217343, + 0x8862d7c3, + 0x233743, + 0x21f243, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0xa14c8, + 0x202782, + 0x22d7c3, + 0x206b43, + 0x23cf83, + 0x22d7c3, + 0x233743, + 0x220583, + 0x205e03, + 0x206b43, + 0x13c3, + 0x23cf83, + 0x24ec04, + 0x202782, + 0x22d7c3, + 0x309703, + 0x233743, + 0x251184, + 0x228843, + 0x220583, + 0x222884, + 0x219e43, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x25b583, + 0x3da885, + 0x243283, + 0x207b83, + 0x13c3, + 0x202782, + 0x22d7c3, + 0x37fa83, + 0x206b43, + 0x23cf83, + 0x2000c2, + 0x24ce83, + 0xa14c8, + 0x22d7c3, + 0x233743, + 0x220583, + 0x22fac6, + 0x222884, + 0x219e43, + 0x205184, + 0x206b43, + 0x23cf83, + 0x213c43, + 0x22d7c3, + 0x233743, + 0x206b43, + 0x23cf83, + 0x2ebc2, + 0x2b42, + 0x144de07, + 0x492c7, + 0x22d7c3, + 0x29f46, + 0x233743, + 0x220583, + 0xe7e06, + 0x206b43, + 0x23cf83, + 0x329fc8, + 0x32d5c9, + 0x341f49, + 0x34a9c8, + 0x396bc8, + 0x396bc9, + 0x323aca, + 0x35d44a, + 0x391f8a, + 0x39858a, + 0x3c94ca, + 0x3d680b, + 0x24704d, + 0x3676cf, + 0x272190, + 0x35eacd, + 0x37d58c, + 0x3982cb, + 0x6da08, + 0x147d48, + 0xb1005, + 0x1489947, + 0xcd9c5, + 0x2000c2, + 0x2c67c5, + 0x200b03, + 0x8c202782, + 0x233743, + 0x220583, + 0x38d5c7, + 0x20bec3, + 0x205e03, + 0x206b43, + 0x251ac3, + 0x20c243, + 0x2013c3, + 0x23cf83, + 0x259b06, + 0x21be02, + 0x207b83, + 0xa14c8, + 0x2000c2, + 0x24ce83, + 0x202782, + 0x22d7c3, + 0x233743, + 0x220583, + 0x222884, + 0x205e03, + 0x206b43, + 0x23cf83, + 0x202003, + 0x492c7, + 0x131944, + 0x153fd06, + 0x2000c2, + 0x202782, + 0x220583, + 0x205e03, + 0x23cf83, } // children is the list of nodes' children, the parent's wildcard bit and the @@ -9289,541 +9395,568 @@ var children = [...]uint32{ 0x40000000, 0x50000000, 0x60000000, - 0x182c605, - 0x183060b, - 0x183460c, - 0x185860d, - 0x19b4616, - 0x19cc66d, - 0x19e0673, - 0x19f4678, - 0x1a1467d, - 0x1a18685, - 0x1a30686, - 0x1a3c68c, - 0x1a4068f, - 0x1a68690, - 0x1a6c69a, - 0x1a8469b, + 0x1824603, + 0x1828609, + 0x182c60a, + 0x185060b, + 0x19ac614, + 0x19c466b, + 0x19d8671, + 0x19f0676, + 0x1a1067c, + 0x1a28684, + 0x1a4068a, + 0x1a58690, + 0x1a5c696, + 0x1a84697, 0x1a886a1, - 0x1a8c6a2, - 0x1ac86a3, - 0x1acc6b2, - 0x61ad46b3, - 0x21adc6b5, - 0x1b246b7, - 0x1b286c9, - 0x1b486ca, - 0x1b5c6d2, - 0x1b606d7, - 0x1b906d8, - 0x1bac6e4, - 0x1bd46eb, - 0x1be46f5, - 0x1be86f9, - 0x1c806fa, - 0x1c94720, - 0x1ca8725, - 0x1cd872a, - 0x1ce8736, - 0x1cfc73a, - 0x1d1073f, - 0x1db4744, - 0x1fb476d, - 0x1fb87ed, - 0x20247ee, - 0x2090809, - 0x20a8824, - 0x20bc82a, - 0x20c082f, - 0x20c8830, - 0x20dc832, - 0x20e0837, - 0x20fc838, - 0x214883f, - 0x2164852, - 0x2168859, - 0x216c85a, - 0x219085b, - 0x21cc864, - 0x621d0873, - 0x21e8874, - 0x220087a, - 0x2208880, - 0x2218882, - 0x22cc886, - 0x22d08b3, - 0x222e08b4, - 0x222e48b8, - 0x222ec8b9, - 0x233c8bb, - 0x23408cf, - 0x28108d0, - 0x228b8a04, - 0x228bca2e, - 0x228c0a2f, - 0x228cca30, - 0x228d0a33, - 0x228dca34, - 0x228e0a37, - 0x228e4a38, - 0x228e8a39, - 0x228eca3a, - 0x228f0a3b, - 0x228fca3c, - 0x22900a3f, - 0x2290ca40, - 0x22910a43, - 0x22914a44, - 0x22918a45, - 0x22924a46, - 0x22928a49, - 0x22934a4a, - 0x22938a4d, - 0x2293ca4e, - 0x22940a4f, - 0x2944a50, - 0x22948a51, - 0x22954a52, + 0x1aa06a2, + 0x1aa46a8, + 0x1aa86a9, + 0x1ae46aa, + 0x1ae86b9, + 0x61af06ba, + 0x21af86bc, + 0x1b406be, + 0x1b446d0, + 0x1b646d1, + 0x1b786d9, + 0x1b7c6de, + 0x1bac6df, + 0x1bc86eb, + 0x1bf06f2, + 0x1c006fc, + 0x1c04700, + 0x1c9c701, + 0x1cb0727, + 0x1cc472c, + 0x1cfc731, + 0x1d0c73f, + 0x1d20743, + 0x1d38748, + 0x1ddc74e, + 0x1fe0777, + 0x1fe47f8, + 0x20507f9, + 0x20bc814, + 0x20d482f, + 0x20e8835, + 0x20ec83a, + 0x20f483b, + 0x210883d, + 0x210c842, + 0x2128843, + 0x217884a, + 0x217c85e, + 0x2218085f, + 0x219c860, + 0x21a0867, + 0x21a4868, + 0x21c8869, + 0x2208872, + 0x220c882, + 0x62210883, + 0x2228884, + 0x224888a, + 0x2254892, + 0x2264895, + 0x2318899, + 0x231c8c6, + 0x2232c8c7, + 0x223308cb, + 0x223388cc, + 0x23948ce, + 0x23988e5, + 0x28848e6, + 0x2292ca21, + 0x22930a4b, + 0x22934a4c, + 0x22940a4d, + 0x22944a50, + 0x22950a51, + 0x22954a54, 0x22958a55, - 0x2960a56, - 0x29a4a58, - 0x229c4a69, - 0x229c8a71, + 0x2295ca56, + 0x22960a57, + 0x22964a58, + 0x22970a59, + 0x22974a5c, + 0x22980a5d, + 0x22984a60, + 0x22988a61, + 0x2298ca62, + 0x22998a63, + 0x2299ca66, + 0x229a8a67, + 0x229aca6a, + 0x229b0a6b, + 0x229b4a6c, + 0x29b8a6d, + 0x229bca6e, + 0x229c8a6f, 0x229cca72, - 0x229d0a73, - 0x29d4a74, - 0x229d8a75, - 0x229dca76, - 0x29e4a77, - 0x29e8a79, - 0x29eca7a, - 0x2a08a7b, - 0x2a20a82, - 0x2a24a88, - 0x2a34a89, - 0x2a40a8d, - 0x2a74a90, - 0x2a78a9d, - 0x2a90a9e, - 0x22a98aa4, - 0x22a9caa6, - 0x22aa4aa7, - 0x2b94aa9, - 0x22b98ae5, - 0x2ba0ae6, - 0x2ba4ae8, - 0x22ba8ae9, - 0x2bacaea, - 0x2bb0aeb, - 0x2bc8aec, - 0x2bdcaf2, - 0x2c04af7, - 0x2c24b01, - 0x2c28b09, - 0x62c2cb0a, - 0x2c5cb0b, - 0x2c60b17, - 0x2c88b18, - 0x2c8cb22, - 0x2cb0b23, - 0x2cb4b2c, - 0x2cc8b2d, - 0x2cccb32, - 0x2cd0b33, - 0x2cf0b34, - 0x2d0cb3c, - 0x2d10b43, - 0x22d14b44, - 0x2d18b45, - 0x2d1cb46, - 0x2d20b47, - 0x2d30b48, - 0x2d34b4c, - 0x2d38b4d, - 0x2db0b4e, - 0x2db4b6c, + 0x29d4a73, + 0x2a18a75, + 0x22a38a86, + 0x22a3ca8e, + 0x22a40a8f, + 0x22a48a90, + 0x22a4ca92, + 0x2a50a93, + 0x22a54a94, + 0x22a58a95, + 0x22a5ca96, + 0x2a64a97, + 0x2a68a99, + 0x2a6ca9a, + 0x2a88a9b, + 0x2aa0aa2, + 0x2aa4aa8, + 0x2ab4aa9, + 0x2ac0aad, + 0x2af4ab0, + 0x2af8abd, + 0x2b10abe, + 0x22b18ac4, + 0x22b1cac6, + 0x22b24ac7, + 0x2c14ac9, + 0x22c18b05, + 0x2c20b06, + 0x2c24b08, + 0x22c28b09, + 0x2c2cb0a, + 0x2c3cb0b, + 0x2c40b0f, + 0x2c44b10, + 0x2c48b11, + 0x2c60b12, + 0x2c74b18, + 0x2c9cb1d, + 0x2cbcb27, + 0x2cc0b2f, + 0x62cc4b30, + 0x2cf4b31, + 0x2cf8b3d, + 0x22cfcb3e, + 0x2d00b3f, + 0x2d28b40, + 0x2d2cb4a, + 0x2d50b4b, + 0x2d54b54, + 0x2d68b55, + 0x2d6cb5a, + 0x2d70b5b, + 0x2d90b5c, + 0x2dacb64, + 0x2db0b6b, + 0x22db4b6c, 0x2db8b6d, - 0x2dd8b6e, - 0x2de8b76, - 0x2dfcb7a, - 0x2e14b7f, - 0x2e2cb85, - 0x2e44b8b, - 0x2e48b91, - 0x2e60b92, - 0x2e7cb98, - 0x2e9cb9f, - 0x2ebcba7, - 0x2ed8baf, - 0x2f38bb6, - 0x2f54bce, - 0x2f64bd5, - 0x2f68bd9, - 0x2f7cbda, - 0x2fc0bdf, - 0x3040bf0, - 0x3074c10, - 0x3078c1d, - 0x3084c1e, - 0x30a4c21, - 0x30a8c29, - 0x30ccc2a, - 0x30d4c33, - 0x3110c35, - 0x3160c44, - 0x3164c58, - 0x3200c59, - 0x3204c80, - 0x23208c81, - 0x2320cc82, - 0x23210c83, - 0x23220c84, - 0x23224c88, - 0x23228c89, - 0x2322cc8a, - 0x23230c8b, - 0x3248c8c, - 0x326cc92, - 0x328cc9b, - 0x38f4ca3, - 0x3900e3d, - 0x3920e40, - 0x3adce48, - 0x3baceb7, - 0x3c1ceeb, - 0x3c74f07, - 0x3d5cf1d, - 0x3db4f57, - 0x3df0f6d, - 0x3eecf7c, - 0x3fb8fbb, - 0x4050fee, - 0x40e1014, - 0x4145038, - 0x437d051, - 0x44350df, - 0x450110d, - 0x454d140, - 0x45d5153, - 0x4611175, - 0x4661184, - 0x46d9198, - 0x646dd1b6, - 0x646e11b7, - 0x646e51b8, - 0x47611b9, - 0x47bd1d8, - 0x48391ef, - 0x48b120e, - 0x493122c, - 0x499d24c, - 0x4ac9267, - 0x4b212b2, - 0x64b252c8, - 0x4bbd2c9, - 0x4c452ef, - 0x4c91311, - 0x4cf9324, - 0x4da133e, - 0x4e69368, - 0x4ed139a, - 0x4fe53b4, - 0x64fe93f9, - 0x64fed3fa, - 0x50493fb, - 0x50a5412, - 0x5135429, - 0x51b144d, - 0x51f546c, - 0x52d947d, - 0x530d4b6, - 0x536d4c3, - 0x53e14db, - 0x54694f8, - 0x54a951a, - 0x551952a, - 0x6551d546, - 0x5545547, - 0x5549551, - 0x5561552, - 0x557d558, - 0x55c155f, - 0x55d1570, - 0x55e9574, - 0x566157a, - 0x5669598, - 0x568559a, - 0x56995a1, - 0x56b55a6, - 0x56e15ad, - 0x56e55b8, - 0x56ed5b9, - 0x57015bb, - 0x57215c0, - 0x572d5c8, - 0x57355cb, - 0x57715cd, - 0x57855dc, - 0x57a95e1, - 0x57b55ea, - 0x57bd5ed, - 0x57e15ef, - 0x58055f8, - 0x581d601, - 0x5821607, - 0x5829608, - 0x582d60a, - 0x58c160b, - 0x58c5630, - 0x58c9631, - 0x58ed632, - 0x591163b, - 0x592d644, - 0x594164b, - 0x5955650, - 0x595d655, - 0x5965657, - 0x5979659, - 0x598965e, - 0x598d662, - 0x59a9663, - 0x623966a, - 0x627188e, - 0x629d89c, - 0x62b98a7, - 0x62d98ae, - 0x62f98b6, - 0x633d8be, - 0x63458cf, - 0x263498d1, - 0x2634d8d2, - 0x63558d3, - 0x65098d5, - 0x2650d942, - 0x2651d943, - 0x26525947, - 0x26531949, - 0x653594c, - 0x653d94d, - 0x656594f, - 0x658d959, - 0x6591963, - 0x65c9964, - 0x65e5972, - 0x713d979, - 0x7141c4f, - 0x7145c50, - 0x27149c51, - 0x714dc52, - 0x27151c53, - 0x7155c54, - 0x27161c55, - 0x7165c58, - 0x7169c59, - 0x2716dc5a, - 0x7171c5b, - 0x27179c5c, - 0x717dc5e, - 0x7181c5f, - 0x27191c60, - 0x7195c64, - 0x7199c65, - 0x719dc66, - 0x71a1c67, - 0x271a5c68, - 0x71a9c69, - 0x71adc6a, - 0x71b1c6b, - 0x71b5c6c, - 0x271bdc6d, - 0x71c1c6f, - 0x71c5c70, - 0x71c9c71, - 0x271cdc72, - 0x71d1c73, - 0x271d9c74, - 0x271ddc76, - 0x71f9c77, - 0x7209c7e, - 0x724dc82, - 0x7251c93, - 0x7275c94, - 0x7279c9d, - 0x727dc9e, - 0x742dc9f, - 0x27431d0b, - 0x27439d0c, - 0x2743dd0e, - 0x27441d0f, - 0x7449d10, - 0x7525d12, - 0x27531d49, - 0x27535d4c, - 0x27539d4d, - 0x2753dd4e, - 0x7541d4f, - 0x756dd50, - 0x7571d5b, - 0x7595d5c, - 0x75a1d65, - 0x75c1d68, - 0x75c5d70, - 0x75fdd71, - 0x78add7f, - 0x7969e2b, - 0x796de5a, - 0x7971e5b, - 0x7985e5c, - 0x79b9e61, - 0x79f1e6e, - 0x279f5e7c, - 0x7a11e7d, - 0x7a39e84, - 0x7a3de8e, - 0x7a61e8f, - 0x7a7de98, - 0x7aa5e9f, - 0x7ab5ea9, - 0x7ab9ead, - 0x7abdeae, - 0x7af5eaf, - 0x7b01ebd, - 0x7b25ec0, - 0x7ba5ec9, - 0x27ba9ee9, - 0x7bb9eea, - 0x7bc1eee, - 0x7be5ef0, - 0x7c05ef9, - 0x7c19f01, - 0x7c2df06, + 0x2dbcb6e, + 0x2dc0b6f, + 0x2dc8b70, + 0x2ddcb72, + 0x2de0b77, + 0x2de4b78, + 0x2de8b79, + 0x2e58b7a, + 0x2e5cb96, + 0x2e60b97, + 0x2e80b98, + 0x2e94ba0, + 0x2ea8ba5, + 0x2ec0baa, + 0x2edcbb0, + 0x2ef4bb7, + 0x2ef8bbd, + 0x2f10bbe, + 0x2f2cbc4, + 0x2f30bcb, + 0x2f50bcc, + 0x2f70bd4, + 0x2f8cbdc, + 0x2fecbe3, + 0x3008bfb, + 0x3018c02, + 0x301cc06, + 0x3034c07, + 0x3078c0d, + 0x30f8c1e, + 0x312cc3e, + 0x3130c4b, + 0x313cc4c, + 0x315cc4f, + 0x3160c57, + 0x3184c58, + 0x318cc61, + 0x31c8c63, + 0x3218c72, + 0x321cc86, + 0x3220c87, + 0x32e4c88, + 0x232e8cb9, + 0x232eccba, + 0x32f0cbb, + 0x232f4cbc, + 0x232f8cbd, + 0x232fccbe, + 0x2330ccbf, + 0x23310cc3, + 0x23314cc4, + 0x23318cc5, + 0x2331ccc6, + 0x3334cc7, + 0x3358ccd, + 0x3378cd6, + 0x39e4cde, + 0x39f0e79, + 0x3a10e7c, + 0x3bd0e84, + 0x3ca0ef4, + 0x3d10f28, + 0x3d68f44, + 0x3e50f5a, + 0x3ea8f94, + 0x3ee4faa, + 0x3fe0fb9, + 0x40acff8, + 0x414502b, + 0x41d5051, + 0x4239075, + 0x447108e, + 0x452911c, + 0x45f514a, + 0x464117d, + 0x46c9190, + 0x47051b2, + 0x47551c1, + 0x47cd1d5, + 0x647d11f3, + 0x647d51f4, + 0x647d91f5, + 0x48551f6, + 0x48b1215, + 0x492d22c, + 0x49a524b, + 0x4a25269, + 0x4a91289, + 0x4bbd2a4, + 0x4c152ef, + 0x64c19305, + 0x4cb1306, + 0x4cb532c, + 0x4d3d32d, + 0x4d8934f, + 0x4df1362, + 0x4e9937c, + 0x4f613a6, + 0x4fc93d8, + 0x50dd3f2, + 0x650e1437, + 0x650e5438, + 0x5141439, + 0x519d450, + 0x522d467, + 0x52a948b, + 0x52ed4aa, + 0x53d14bb, + 0x54054f4, + 0x5465501, + 0x54d9519, + 0x5561536, + 0x55a1558, + 0x5611568, + 0x65615584, + 0x563d585, + 0x564158f, + 0x5659590, + 0x5675596, + 0x56b959d, + 0x56c95ae, + 0x56e15b2, + 0x57595b8, + 0x57615d6, + 0x577d5d8, + 0x57915df, + 0x57ad5e4, + 0x57d95eb, + 0x57dd5f6, + 0x57e55f7, + 0x57f95f9, + 0x58195fe, + 0x5829606, + 0x583560a, + 0x587160d, + 0x587961c, + 0x588d61e, + 0x58b1623, + 0x58bd62c, + 0x58c562f, + 0x58e9631, + 0x590d63a, + 0x5925643, + 0x5929649, + 0x593164a, + 0x593564c, + 0x59d164d, + 0x59d5674, + 0x59d9675, + 0x59dd676, + 0x5a01677, + 0x5a25680, + 0x5a41689, + 0x5a55690, + 0x5a69695, + 0x5a7169a, + 0x5a7969c, + 0x5a8169e, + 0x5a996a0, + 0x5aa96a6, + 0x5aad6aa, + 0x5ac96ab, + 0x63596b2, + 0x63918d6, + 0x63bd8e4, + 0x63d98ef, + 0x63f98f6, + 0x64198fe, + 0x645d906, + 0x6465917, + 0x26469919, + 0x2646d91a, + 0x647591b, + 0x663d91d, + 0x2664198f, + 0x26651990, + 0x26659994, + 0x26665996, + 0x6669999, + 0x2667199a, + 0x668199c, + 0x66a99a0, + 0x66dd9aa, + 0x66e19b7, + 0x67199b8, + 0x67399c6, + 0x72919ce, + 0x7295ca4, + 0x7299ca5, + 0x2729dca6, + 0x72a1ca7, + 0x272a5ca8, + 0x72a9ca9, + 0x272b5caa, + 0x72b9cad, + 0x72bdcae, + 0x272c1caf, + 0x72c5cb0, + 0x272cdcb1, + 0x72d1cb3, + 0x72d5cb4, + 0x272e5cb5, + 0x72e9cb9, + 0x72edcba, + 0x72f1cbb, + 0x72f5cbc, + 0x272f9cbd, + 0x72fdcbe, + 0x7301cbf, + 0x7305cc0, + 0x7309cc1, + 0x27311cc2, + 0x7315cc4, + 0x7319cc5, + 0x731dcc6, + 0x27321cc7, + 0x7325cc8, + 0x2732dcc9, + 0x27331ccb, + 0x734dccc, + 0x7365cd3, + 0x27369cd9, + 0x73adcda, + 0x73b1ceb, + 0x73d5cec, + 0x73e1cf5, + 0x73e5cf8, + 0x73e9cf9, + 0x759dcfa, + 0x275a1d67, + 0x275a9d68, + 0x275add6a, + 0x275b1d6b, + 0x75b9d6c, + 0x7695d6e, + 0x276a1da5, + 0x276a5da8, + 0x276a9da9, + 0x276addaa, + 0x76b1dab, + 0x76dddac, + 0x76e1db7, + 0x76e5db8, + 0x7709db9, + 0x7715dc2, + 0x7735dc5, + 0x7739dcd, + 0x7771dce, + 0x7a21ddc, + 0x7adde88, + 0x7ae1eb7, + 0x7ae5eb8, + 0x7af9eb9, + 0x7b2debe, + 0x7b65ecb, + 0x27b69ed9, + 0x7b85eda, + 0x7badee1, + 0x7bb1eeb, + 0x7bd5eec, + 0x7bf1ef5, + 0x7c19efc, + 0x7c29f06, + 0x7c2df0a, 0x7c31f0b, - 0x7c51f0c, - 0x7cf5f14, - 0x7d11f3d, - 0x7d35f44, - 0x7d39f4d, - 0x7d41f4e, - 0x7d51f50, - 0x7d59f54, - 0x7d6df56, - 0x7d8df5b, - 0x7d99f63, - 0x7da5f66, - 0x7dddf69, - 0x7eb1f77, - 0x7eb5fac, - 0x7ec9fad, - 0x7ed1fb2, - 0x7ee9fb4, - 0x7eedfba, - 0x7ef9fbb, - 0x7efdfbe, - 0x7f01fbf, - 0x7f25fc0, - 0x7f65fc9, - 0x7f69fd9, - 0x7f89fda, - 0x7fd9fe2, - 0x7ff5ff6, - 0x7ffdffd, - 0x8051fff, - 0x8056014, - 0x805a015, - 0x805e016, - 0x80a2017, - 0x80b2028, + 0x7c69f0c, + 0x7c75f1a, + 0x7c9df1d, + 0x7d1df27, + 0x27d21f47, + 0x7d31f48, + 0x7d3df4c, + 0x7d59f4f, + 0x7d79f56, + 0x7d7df5e, + 0x7d91f5f, + 0x7da5f64, + 0x7da9f69, + 0x7dc9f6a, + 0x7e71f72, + 0x7e75f9c, + 0x7e91f9d, + 0x7eb5fa4, + 0x7eb9fad, + 0x7ec1fae, + 0x7ed9fb0, + 0x7ee1fb6, + 0x7ef5fb8, + 0x7f15fbd, + 0x7f25fc5, + 0x7f31fc9, + 0x7f69fcc, + 0x803dfda, + 0x804200f, + 0x8056010, + 0x805e015, + 0x8076017, + 0x807a01d, + 0x808601e, + 0x808a021, + 0x808e022, + 0x80b2023, 0x80f202c, 0x80f603c, - 0x812603d, - 0x826e049, - 0x829609b, - 0x82c60a5, - 0x82e60b1, - 0x282ee0b9, - 0x82f60bb, - 0x83020bd, - 0x84160c0, - 0x8422105, - 0x842e108, - 0x843a10b, - 0x844610e, - 0x8452111, - 0x845e114, - 0x846a117, - 0x847611a, - 0x848211d, - 0x848e120, - 0x849a123, - 0x84a6126, - 0x84b2129, - 0x84ba12c, - 0x84c612e, - 0x84d2131, - 0x84de134, - 0x84ea137, - 0x84f613a, - 0x850213d, - 0x850e140, - 0x851a143, - 0x8526146, - 0x8532149, - 0x853e14c, - 0x856a14f, - 0x857615a, - 0x858215d, - 0x858e160, - 0x859a163, - 0x85a6166, - 0x85ae169, - 0x85ba16b, - 0x85c616e, - 0x85d2171, - 0x85de174, - 0x85ea177, - 0x85f617a, - 0x860217d, - 0x860e180, - 0x861a183, - 0x8626186, - 0x8632189, - 0x863e18c, - 0x864a18f, - 0x8652192, - 0x865e194, - 0x866a197, - 0x867619a, - 0x868219d, - 0x868e1a0, - 0x869a1a3, - 0x86a61a6, - 0x86b21a9, - 0x86b61ac, + 0x811603d, + 0x8166045, + 0x8182059, + 0x818a060, + 0x81e2062, + 0x81e6078, + 0x81ea079, + 0x81ee07a, + 0x823207b, + 0x824208c, + 0x8282090, + 0x82860a0, + 0x82b60a1, + 0x83fe0ad, + 0x84260ff, + 0x8456109, + 0x8476115, + 0x2847e11d, + 0x848611f, + 0x8492121, + 0x85a6124, + 0x85b2169, + 0x85be16c, + 0x85ca16f, + 0x85d6172, + 0x85e2175, + 0x85ee178, + 0x85fa17b, + 0x860617e, + 0x8612181, + 0x861e184, + 0x862a187, + 0x863618a, + 0x864218d, + 0x864a190, + 0x8656192, + 0x8662195, + 0x866e198, + 0x867a19b, + 0x868619e, + 0x86921a1, + 0x869e1a4, + 0x86aa1a7, + 0x86b61aa, 0x86c21ad, - 0x86de1b0, - 0x86e21b7, - 0x86f21b8, - 0x870e1bc, - 0x87521c3, - 0x87561d4, - 0x876a1d5, - 0x879e1da, - 0x87ae1e7, - 0x87d21eb, - 0x87ea1f4, - 0x88021fa, - 0x881a200, - 0x882e206, - 0x2887220b, - 0x887621c, - 0x88a221d, - 0x88aa228, - 0x88be22a, + 0x86ce1b0, + 0x86fa1b3, + 0x87061be, + 0x87121c1, + 0x871e1c4, + 0x872a1c7, + 0x87361ca, + 0x873e1cd, + 0x874a1cf, + 0x87561d2, + 0x87621d5, + 0x876e1d8, + 0x877a1db, + 0x87861de, + 0x87921e1, + 0x879e1e4, + 0x87aa1e7, + 0x87b61ea, + 0x87c21ed, + 0x87ce1f0, + 0x87da1f3, + 0x87e21f6, + 0x87ee1f8, + 0x87fa1fb, + 0x88061fe, + 0x8812201, + 0x881e204, + 0x882a207, + 0x883620a, + 0x884220d, + 0x8846210, + 0x8852211, + 0x886e214, + 0x887221b, + 0x888221c, + 0x889e220, + 0x88e2227, + 0x88e6238, + 0x88fa239, + 0x892e23e, + 0x893e24b, + 0x894624f, + 0x896a251, + 0x898225a, + 0x899a260, + 0x89b2266, + 0x89c626c, + 0x28a0a271, + 0x8a0e282, + 0x8a3a283, + 0x8a4628e, + 0x8a5a291, } -// max children 536 (capacity 1023) -// max text offset 30294 (capacity 32767) +// max children 563 (capacity 1023) +// max text offset 30521 (capacity 32767) // max text length 36 (capacity 63) -// max hi 8751 (capacity 16383) -// max lo 8746 (capacity 16383) +// max hi 8854 (capacity 16383) +// max lo 8849 (capacity 16383) diff --git a/vendor/golang.org/x/oauth2/google/google.go b/vendor/golang.org/x/oauth2/google/google.go index 6eb2aa95f..81de32b36 100644 --- a/vendor/golang.org/x/oauth2/google/google.go +++ b/vendor/golang.org/x/oauth2/google/google.go @@ -194,9 +194,16 @@ func (cs computeSource) Token() (*oauth2.Token, error) { if res.ExpiresInSec == 0 || res.AccessToken == "" { return nil, fmt.Errorf("oauth2/google: incomplete token received from metadata") } - return &oauth2.Token{ + tok := &oauth2.Token{ AccessToken: res.AccessToken, TokenType: res.TokenType, Expiry: time.Now().Add(time.Duration(res.ExpiresInSec) * time.Second), - }, nil + } + // NOTE(cbro): add hidden metadata about where the token is from. + // This is needed for detection by client libraries to know that credentials come from the metadata server. + // This may be removed in a future version of this library. + return tok.WithExtra(map[string]interface{}{ + "oauth2.google.tokenSource": "compute-metadata", + "oauth2.google.serviceAccount": acct, + }), nil } diff --git a/vendor/golang.org/x/oauth2/jwt/jwt.go b/vendor/golang.org/x/oauth2/jwt/jwt.go index 99f3e0a32..b2bf18298 100644 --- a/vendor/golang.org/x/oauth2/jwt/jwt.go +++ b/vendor/golang.org/x/oauth2/jwt/jwt.go @@ -66,6 +66,14 @@ type Config struct { // request. If empty, the value of TokenURL is used as the // intended audience. Audience string + + // PrivateClaims optionally specifies custom private claims in the JWT. + // See http://tools.ietf.org/html/draft-jones-json-web-token-10#section-4.3 + PrivateClaims map[string]interface{} + + // UseIDToken optionally specifies whether ID token should be used instead + // of access token when the server returns both. + UseIDToken bool } // TokenSource returns a JWT TokenSource using the configuration @@ -97,9 +105,10 @@ func (js jwtSource) Token() (*oauth2.Token, error) { } hc := oauth2.NewClient(js.ctx, nil) claimSet := &jws.ClaimSet{ - Iss: js.conf.Email, - Scope: strings.Join(js.conf.Scopes, " "), - Aud: js.conf.TokenURL, + Iss: js.conf.Email, + Scope: strings.Join(js.conf.Scopes, " "), + Aud: js.conf.TokenURL, + PrivateClaims: js.conf.PrivateClaims, } if subject := js.conf.Subject; subject != "" { claimSet.Sub = subject @@ -166,5 +175,11 @@ func (js jwtSource) Token() (*oauth2.Token, error) { } token.Expiry = time.Unix(claimSet.Exp, 0) } + if js.conf.UseIDToken { + if tokenRes.IDToken == "" { + return nil, fmt.Errorf("oauth2: response doesn't have JWT token") + } + token.AccessToken = tokenRes.IDToken + } return token, nil } diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go index 428283f0b..291df5c83 100644 --- a/vendor/golang.org/x/oauth2/oauth2.go +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -117,7 +117,7 @@ var ( // ApprovalForce forces the users to view the consent dialog // and confirm the permissions request at the URL returned // from AuthCodeURL, even if they've already done so. - ApprovalForce AuthCodeOption = SetAuthURLParam("approval_prompt", "force") + ApprovalForce AuthCodeOption = SetAuthURLParam("prompt", "consent") ) // An AuthCodeOption is passed to Config.AuthCodeURL. diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go index 4407c505a..6f3460e69 100644 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -6,12 +6,97 @@ package unix -import "syscall" +import "unsafe" + +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { + if len(b) < int(off+size) { + return 0, false + } + if isBigEndian { + return readIntBE(b[off:], size), true + } + return readIntLE(b[off:], size), true +} + +func readIntBE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[1]) | uint64(b[0])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | + uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} + +func readIntLE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} // ParseDirent parses up to max directory entries in buf, // appending the names to names. It returns the number of // bytes consumed from buf, the number of entries added // to names, and the new names slice. func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - return syscall.ParseDirent(buf, max, names) + origlen := len(buf) + count = 0 + for max != 0 && len(buf) > 0 { + reclen, ok := direntReclen(buf) + if !ok || reclen > uint64(len(buf)) { + return origlen, count, names + } + rec := buf[:reclen] + buf = buf[reclen:] + ino, ok := direntIno(rec) + if !ok { + break + } + if ino == 0 { // File absent in directory. + continue + } + const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) + namlen, ok := direntNamlen(rec) + if !ok || namoff+namlen > uint64(len(rec)) { + break + } + name := rec[namoff : namoff+namlen] + for i, c := range name { + if c == 0 { + name = name[:i] + break + } + } + // Check for useless names before allocating a string. + if string(name) == "." || string(name) == ".." { + continue + } + max-- + count++ + names = append(names, string(name)) + } + return origlen - len(buf), count, names } diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 80d00707b..5a22eca96 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -105,25 +105,25 @@ dragonfly_amd64) freebsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_amd64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; freebsd_arm64) mkerrors="$mkerrors -m64" - mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; netbsd_386) diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 4c91159c1..3d85f2795 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -183,6 +183,7 @@ struct ltchars { #include #include #include +#include #include #include #include diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go index 4d5b531b5..eb4332059 100644 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ b/vendor/golang.org/x/sys/unix/mkpost.go @@ -50,8 +50,8 @@ func main() { } // Intentionally export __val fields in Fsid and Sigset_t - valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__val(\s+\S+\s+)}`) - b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$3}")) + valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__(bits|val)(\s+\S+\s+)}`) + b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$4}")) // Intentionally export __fds_bits field in FdSet fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`) diff --git a/vendor/golang.org/x/sys/unix/mksysnum.go b/vendor/golang.org/x/sys/unix/mksysnum.go index 07f8960ff..baa6ecd85 100644 --- a/vendor/golang.org/x/sys/unix/mksysnum.go +++ b/vendor/golang.org/x/sys/unix/mksysnum.go @@ -139,7 +139,7 @@ func main() { text += format(name, num, proto) } case "freebsd": - if t.Match(`^([0-9]+)\s+\S+\s+(?:NO)?STD\s+({ \S+\s+(\w+).*)$`) { + if t.Match(`^([0-9]+)\s+\S+\s+(?:(?:NO)?STD|COMPAT10)\s+({ \S+\s+(\w+).*)$`) { num, proto := t.sub[1], t.sub[2] name := fmt.Sprintf("SYS_%s", t.sub[3]) text += format(name, num, proto) diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go new file mode 100644 index 000000000..3a90aa6df --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go @@ -0,0 +1,12 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix dragonfly freebsd linux netbsd openbsd + +package unix + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + return Getdents(fd, buf) +} diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go new file mode 100644 index 000000000..5fdae40b3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -0,0 +1,19 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin + +package unix + +import "unsafe" + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + // Final argument is (basep *uintptr) and the syscall doesn't take nil. + // 64 bits should be enough. (32 bits isn't even on 386). Since the + // actual system call is getdirentries64, 64 is a good guess. + // TODO(rsc): Can we use a single global basep for all calls? + var base = (*uintptr)(unsafe.Pointer(new(uint64))) + return Getdirentries(fd, buf, base) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go index 45e12fb8a..1aa065f9c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -280,8 +280,24 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return -1, ENOSYS } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + //sys getdirent(fd int, buf []byte) (n int, err error) -func ReadDirent(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { return getdirent(fd, buf) } diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index 33c8b5f0d..97a8eef6f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -63,15 +63,6 @@ func Setgroups(gids []int) (err error) { return setgroups(len(a), &a[0]) } -func ReadDirent(fd int, buf []byte) (n int, err error) { - // Final argument is (basep *uintptr) and the syscall doesn't take nil. - // 64 bits should be enough. (32 bits isn't even on 386). Since the - // actual system call is getdirentries64, 64 is a good guess. - // TODO(rsc): Can we use a single global basep for all calls? - var base = (*uintptr)(unsafe.Pointer(new(uint64))) - return Getdirentries(fd, buf, base) -} - // Wait status is 7 bits at bottom, either 0 (exited), // 0x7F (stopped), or a signal number that caused an exit. // The 0x80 bit is whether there was a core dump. @@ -86,6 +77,7 @@ const ( shift = 8 exited = 0 + killed = 9 stopped = 0x7F ) @@ -112,6 +104,8 @@ func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } +func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } + func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } func (w WaitStatus) StopSignal() syscall.Signal { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 212009189..216b4ac9e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -77,6 +77,18 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + //sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 962eee304..260a400f9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -57,6 +57,22 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + namlen, ok := direntNamlen(buf) + if !ok { + return 0, false + } + return (16 + namlen + 1 + 7) &^ 7, true +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + //sysnb pipe() (r int, w int, err error) func Pipe(p []int) (err error) { @@ -269,6 +285,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //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) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index f135812a3..329d240b9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -82,6 +82,18 @@ func nametomib(name string) (mib []_C_int, err error) { return buf[0 : n/siz], nil } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + func Pipe(p []int) (err error) { return Pipe2(p, 0) } @@ -362,7 +374,21 @@ func Getdents(fd int, buf []byte) (n int, err error) { func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { if supportsABI(_ino64First) { - return getdirentries_freebsd12(fd, buf, basep) + if basep == nil || unsafe.Sizeof(*basep) == 8 { + return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) + } + // The freebsd12 syscall needs a 64-bit base. On 32-bit machines + // we can't just use the basep passed in. See #32498. + var base uint64 = uint64(*basep) + n, err = getdirentries_freebsd12(fd, buf, &base) + *basep = uintptr(base) + if base>>32 != 0 { + // We can't stuff the base back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return } // The old syscall entries are smaller than the new. Use 1/4 of the original @@ -507,6 +533,70 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return sendfile(outfd, infd, offset, count) } +//sys ptrace(request int, pid int, addr uintptr, data int) (err error) + +func PtraceAttach(pid int) (err error) { + return ptrace(PTRACE_ATTACH, pid, 0, 0) +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 1, signal) +} + +func PtraceDetach(pid int) (err error) { + return ptrace(PTRACE_DETACH, pid, 1, 0) +} + +func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { + return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) +} + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceGetRegs(pid int, regsout *Reg) (err error) { + return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} + +func PtraceLwpEvents(pid int, enable int) (err error) { + return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) +} + +func PtraceLwpInfo(pid int, info uintptr) (err error) { + return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{}))) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) +} + +func PtraceSetRegs(pid int, regs *Reg) (err error) { + return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0) +} + +func PtraceSingleStep(pid int) (err error) { + return ptrace(PTRACE_SINGLESTEP, pid, 1, 0) +} + /* * Exposed directly */ @@ -555,7 +645,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) //sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) -//sys getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) +//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) //sys Getdtablesize() (size int) //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index c92545ea5..637b5017b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -13,7 +13,6 @@ package unix import ( "encoding/binary" - "net" "runtime" "syscall" "unsafe" @@ -765,7 +764,7 @@ const px_proto_oe = 0 type SockaddrPPPoE struct { SID uint16 - Remote net.HardwareAddr + Remote []byte Dev string raw RawSockaddrPPPoX } @@ -916,7 +915,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } sa := &SockaddrPPPoE{ SID: binary.BigEndian.Uint16(pp[6:8]), - Remote: net.HardwareAddr(pp[8:14]), + Remote: pp[8:14], } for i := 14; i < 14+IFNAMSIZ; i++ { if pp[i] == 0 { @@ -1414,8 +1413,20 @@ func Reboot(cmd int) (err error) { return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") } -func ReadDirent(fd int, buf []byte) (n int, err error) { - return Getdents(fd, buf) +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true } //sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) @@ -1450,6 +1461,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Acct(path string) (err error) //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) //sys Adjtimex(buf *Timex) (state int, err error) +//sys Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sys Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) @@ -1755,8 +1768,6 @@ func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err erro // Alarm // ArchPrctl // Brk -// Capget -// Capset // ClockNanosleep // ClockSettime // Clone diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 5240e16e4..5ef309040 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -94,6 +94,18 @@ func nametomib(name string) (mib []_C_int, err error) { return mib, nil } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + func SysctlClockinfo(name string) (*Clockinfo, error) { mib, err := sysctlmib(name) if err != nil { @@ -120,9 +132,30 @@ func Pipe(p []int) (err error) { return } -//sys getdents(fd int, buf []byte) (n int, err error) +//sys Getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return } const ImplementsGetwd = true diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index c8648ec02..1a074b2fe 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -43,6 +43,18 @@ func nametomib(name string) (mib []_C_int, err error) { return nil, EINVAL } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + func SysctlClockinfo(name string) (*Clockinfo, error) { mib, err := sysctlmib(name) if err != nil { @@ -89,9 +101,30 @@ func Pipe(p []int) (err error) { return } -//sys getdents(fd int, buf []byte) (n int, err error) +//sys Getdents(fd int, buf []byte) (n int, err error) func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - return getdents(fd, buf) + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO was allowed by getdirentries. + err = EIO + } + return } const ImplementsGetwd = true diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index e47801275..0153a316d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -35,6 +35,22 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + //sysnb pipe(p *[2]_C_int) (n int, err error) func Pipe(p []int) (err error) { @@ -189,6 +205,7 @@ func Setgroups(gids []int) (err error) { return setgroups(len(a), &a[0]) } +// ReadDirent reads directory entries from fd and writes them into buf. func ReadDirent(fd int, buf []byte) (n int, err error) { // Final argument is (basep *uintptr) and the syscall doesn't take nil. // TODO(rsc): Can we use a single global basep for all calls? diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go index 747079895..a121dc336 100644 --- a/vendor/golang.org/x/sys/unix/types_freebsd.go +++ b/vendor/golang.org/x/sys/unix/types_freebsd.go @@ -243,11 +243,55 @@ const ( // Ptrace requests const ( - PTRACE_TRACEME = C.PT_TRACE_ME - PTRACE_CONT = C.PT_CONTINUE - PTRACE_KILL = C.PT_KILL + PTRACE_ATTACH = C.PT_ATTACH + PTRACE_CONT = C.PT_CONTINUE + PTRACE_DETACH = C.PT_DETACH + PTRACE_GETFPREGS = C.PT_GETFPREGS + PTRACE_GETFSBASE = C.PT_GETFSBASE + PTRACE_GETLWPLIST = C.PT_GETLWPLIST + PTRACE_GETNUMLWPS = C.PT_GETNUMLWPS + PTRACE_GETREGS = C.PT_GETREGS + PTRACE_GETXSTATE = C.PT_GETXSTATE + PTRACE_IO = C.PT_IO + PTRACE_KILL = C.PT_KILL + PTRACE_LWPEVENTS = C.PT_LWP_EVENTS + PTRACE_LWPINFO = C.PT_LWPINFO + PTRACE_SETFPREGS = C.PT_SETFPREGS + PTRACE_SETREGS = C.PT_SETREGS + PTRACE_SINGLESTEP = C.PT_STEP + PTRACE_TRACEME = C.PT_TRACE_ME ) +const ( + PIOD_READ_D = C.PIOD_READ_D + PIOD_WRITE_D = C.PIOD_WRITE_D + PIOD_READ_I = C.PIOD_READ_I + PIOD_WRITE_I = C.PIOD_WRITE_I +) + +const ( + PL_FLAG_BORN = C.PL_FLAG_BORN + PL_FLAG_EXITED = C.PL_FLAG_EXITED + PL_FLAG_SI = C.PL_FLAG_SI +) + +const ( + TRAP_BRKPT = C.TRAP_BRKPT + TRAP_TRACE = C.TRAP_TRACE +) + +type PtraceLwpInfoStruct C.struct_ptrace_lwpinfo + +type __Siginfo C.struct___siginfo + +type Sigset_t C.sigset_t + +type Reg C.struct_reg + +type FpReg C.struct_fpreg + +type PtraceIoDesc C.struct_ptrace_io_desc + // Events (kqueue, kevent) type Kevent_t C.struct_kevent_freebsd11 diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go index 2dd4f9542..4a96d72c3 100644 --- a/vendor/golang.org/x/sys/unix/types_netbsd.go +++ b/vendor/golang.org/x/sys/unix/types_netbsd.go @@ -254,6 +254,7 @@ type Ptmget C.struct_ptmget const ( AT_FDCWD = C.AT_FDCWD + AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ) diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go index 8aafbe446..775cb57dc 100644 --- a/vendor/golang.org/x/sys/unix/types_openbsd.go +++ b/vendor/golang.org/x/sys/unix/types_openbsd.go @@ -241,6 +241,7 @@ type Winsize C.struct_winsize const ( AT_FDCWD = C.AT_FDCWD + AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 881e69f12..1db2f00de 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 039b007d7..8a9d2eadf 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 97ed569a2..2e7455814 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index d47f3ba6a..b1dc633a2 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 0ae030ee4..ad4d9afb6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 91b49dddb..fe2965028 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 7f1ef04eb..608878303 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 724a244fd..4cf9ddfad 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 250446292..374e3007f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0xff CBAUDEX = 0x0 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index e7c49911b..badf14102 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0xff CBAUDEX = 0x0 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 0373d65ae..0ce8c7eff 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index b2ed7ee6a..47675125a 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -334,6 +334,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index 58067c529..a46fc9b43 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -337,6 +337,45 @@ const ( CAN_SFF_MASK = 0x7ff CAN_TP16 = 0x3 CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x25 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 CBAUD = 0x100f CBAUDEX = 0x1000 CFLUSH = 0xf diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go index ae9f1a21e..cdfe9318b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -749,6 +749,23 @@ func Ftruncate(fd int, length int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index 80903e47b..a783306b2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -387,6 +387,16 @@ func pipe2(p *[2]_C_int, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getcwd(buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { @@ -1019,7 +1029,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index cd250ff0e..f995520d3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -387,6 +387,16 @@ func pipe2(p *[2]_C_int, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getcwd(buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { @@ -1019,7 +1029,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index 290a9c2cb..d681acd43 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -387,6 +387,16 @@ func pipe2(p *[2]_C_int, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getcwd(buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { @@ -1019,7 +1029,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index c6df9d2e8..5049b2ede 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -404,6 +404,16 @@ func Getcwd(buf []byte) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { @@ -1019,7 +1029,7 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { +func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 81d90a27e..c5e46e4cf 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 0c184586b..da8819e48 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 18ef8a626..6ad9be6dd 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 2fba25d05..f88331782 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index c330f4ffa..8eebc6c77 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 8e9e0098a..ecf62a677 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index c22d62607..1ba0f7b6f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 700a99e97..20012b2f0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index cec4c106c..2b520deaa 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index 677ef5a69..d9f044c95 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index 565034c54..9feed65eb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index 7feb2c6b6..0a6515088 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index 07655c455..e27f66930 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -408,6 +408,26 @@ func Adjtimex(buf *Timex) (state int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Chdir(path string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 642db7670..7e0582664 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index 59585fee3..d94d076aa 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index 6ec31434b..cf5bf3d05 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 603d14433..243a9317c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -389,7 +389,7 @@ func pipe() (fd1 int, fd2 int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index 6a489fac0..a9532d078 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 30cba4347..0cb9f0177 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index fa1beda33..6fc99b549 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index eb5899046..27878a72b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -387,7 +387,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func getdents(fd int, buf []byte) (n int, err error) { +func Getdents(fd int, buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { _p0 = unsafe.Pointer(&buf[0]) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go index 55c3a3294..9474974b6 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,freebsd @@ -118,8 +118,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } 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); } @@ -133,10 +131,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +158,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +192,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +228,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +250,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +285,6 @@ const ( 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, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +390,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go index b39be6cb8..48a7beae7 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,freebsd @@ -118,8 +118,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } 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); } @@ -133,10 +131,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +158,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +192,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +228,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +250,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +285,6 @@ const ( 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, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +390,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go index 44ffd4ce5..4a6dfd4a7 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,freebsd @@ -118,8 +118,6 @@ const ( SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } 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); } @@ -133,10 +131,6 @@ const ( SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } @@ -164,6 +158,7 @@ const ( SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } @@ -197,13 +192,10 @@ const ( SYS_GETSID = 310 // { int getsid(pid_t pid); } SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } - SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } - SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } - SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } @@ -236,7 +228,7 @@ const ( SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } @@ -258,7 +250,7 @@ const ( SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } @@ -293,8 +285,6 @@ const ( 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, int attrnamespace, void *data, size_t nbytes); } SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } @@ -400,4 +390,7 @@ const ( SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go index 9f21e9550..3e51af8ed 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -1,4 +1,4 @@ -// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master +// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm64,freebsd @@ -7,13 +7,13 @@ package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +21,20 @@ const ( 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_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - 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_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -42,56 +42,57 @@ const ( 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_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int 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_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - 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_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -99,24 +100,24 @@ const ( 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_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -127,269 +128,269 @@ const ( 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___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ - 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_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } 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_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, 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_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - 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_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_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_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - 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___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - 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___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - 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___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - 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_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - 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_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_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_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - 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_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - 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, \ - SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, \ - SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, \ + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); } + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); } SYS_FDATASYNC = 550 // { int fdatasync(int fd); } ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index 0edc5409a..7312e95ff 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -324,11 +324,108 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 ) +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + X_reason [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Fs uint32 + Es uint32 + Ds uint32 + Edi uint32 + Esi uint32 + Ebp uint32 + Isp uint32 + Ebx uint32 + Edx uint32 + Ecx uint32 + Eax uint32 + Trapno uint32 + Err uint32 + Eip uint32 + Cs uint32 + Eflags uint32 + Esp uint32 + Ss uint32 + Gs uint32 +} + +type FpReg struct { + Env [7]uint32 + Acc [8][10]uint8 + Ex_sw uint32 + Pad [64]uint8 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint +} + type Kevent_t struct { Ident uint32 Filter int16 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index 8881ce842..29ba2f5bf 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -322,11 +322,115 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 ) +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R15 int64 + R14 int64 + R13 int64 + R12 int64 + R11 int64 + R10 int64 + R9 int64 + R8 int64 + Rdi int64 + Rsi int64 + Rbp int64 + Rbx int64 + Rdx int64 + Rcx int64 + Rax int64 + Trapno uint32 + Fs uint16 + Gs uint16 + Err uint32 + Es uint16 + Ds uint16 + Rip int64 + Cs int64 + Rflags int64 + Rsp int64 + Ss int64 +} + +type FpReg struct { + Env [4]uint64 + Acc [8][16]uint8 + Xacc [16][16]uint8 + Spare [12]uint64 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint +} + type Kevent_t struct { Ident uint64 Filter int16 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index fc713999c..b4090ef31 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -322,11 +322,92 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 ) +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + X_reason [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R [13]uint32 + R_sp uint32 + R_lr uint32 + R_pc uint32 + R_cpsr uint32 +} + +type FpReg struct { + Fpr_fpsr uint32 + Fpr [8][3]uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint +} + type Kevent_t struct { Ident uint32 Filter int16 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index 5a0753ee4..1542a8773 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -322,11 +322,93 @@ const ( ) const ( - PTRACE_TRACEME = 0x0 - PTRACE_CONT = 0x7 - PTRACE_KILL = 0x8 + PTRACE_ATTACH = 0xa + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0xb + PTRACE_GETFPREGS = 0x23 + PTRACE_GETFSBASE = 0x47 + PTRACE_GETLWPLIST = 0xf + PTRACE_GETNUMLWPS = 0xe + PTRACE_GETREGS = 0x21 + PTRACE_GETXSTATE = 0x45 + PTRACE_IO = 0xc + PTRACE_KILL = 0x8 + PTRACE_LWPEVENTS = 0x18 + PTRACE_LWPINFO = 0xd + PTRACE_SETFPREGS = 0x24 + PTRACE_SETREGS = 0x22 + PTRACE_SINGLESTEP = 0x9 + PTRACE_TRACEME = 0x0 ) +const ( + PIOD_READ_D = 0x1 + PIOD_WRITE_D = 0x2 + PIOD_READ_I = 0x3 + PIOD_WRITE_I = 0x4 +) + +const ( + PL_FLAG_BORN = 0x100 + PL_FLAG_EXITED = 0x200 + PL_FLAG_SI = 0x20 +) + +const ( + TRAP_BRKPT = 0x1 + TRAP_TRACE = 0x2 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __Siginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + X_reason [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + X [30]uint64 + Lr uint64 + Sp uint64 + Elr uint64 + Spsr uint32 +} + +type FpReg struct { + Fp_q [32]uint128 + Fp_sr uint32 + Fp_cr uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs *byte + Addr *byte + Len uint +} + type Kevent_t struct { Ident uint64 Filter int16 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 06e3a3f4d..5492b9666 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -2467,3 +2467,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index cef25e732..caf33b2c5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -2480,3 +2480,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index c4369361e..93aec7e22 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -2458,3 +2458,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 76c55e053..0a038436d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -2459,3 +2459,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 4302d574f..2de0e5800 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -2464,3 +2464,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 7ea742be6..3735eb42e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -2461,3 +2461,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 8f2b8ad4e..073c29939 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -2461,3 +2461,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 865bf57da..58d09f75e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -2464,3 +2464,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 2b68027d5..3f1e62e03 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -2469,3 +2469,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 76cd7e643..e67be11eb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -2469,3 +2469,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index f99f06155..f44f29403 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -2486,3 +2486,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index d9d03ae49..90bf5dcc7 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -2483,3 +2483,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index b247fe94b..4f054dcbb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -2464,3 +2464,20 @@ const ( BPF_FD_TYPE_UPROBE = 0x4 BPF_FD_TYPE_URETPROBE = 0x5 ) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index a2268b4f6..86736ab6e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -411,6 +411,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 59e1da0a6..3427811f9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -418,6 +418,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 1f1f0f381..399f37a43 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -416,6 +416,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index 8dca204a9..32f0c15d9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -418,6 +418,7 @@ type Ptmget struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x200 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 900fb4462..61ea0019a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -436,6 +436,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index 028fa78d7..87a493f68 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -436,6 +436,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index b45d5eedf..d80836efa 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -437,6 +437,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go index fa369a32a..4e158746f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -430,6 +430,7 @@ type Winsize struct { const ( AT_FDCWD = -0x64 + AT_SYMLINK_FOLLOW = 0x4 AT_SYMLINK_NOFOLLOW = 0x2 ) diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash index f5c6888b9..2163843a1 100644 --- a/vendor/golang.org/x/sys/windows/mkerrors.bash +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -13,7 +13,7 @@ winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/* declare -A errors { - echo "// Code generated by 'go generate'; DO NOT EDIT." + echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." echo echo "package windows" echo "import \"syscall\"" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash new file mode 100644 index 000000000..ab8924e93 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 2019 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +set -e +shopt -s nullglob + +knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" +[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } + +{ + echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "type KNOWNFOLDERID GUID" + echo "var (" + while read -r line; do + [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue + printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ + "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ + $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ + $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) + done < "$knownfolders" + echo ")" +} | gofmt > "zknownfolderids_windows.go" diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go index 9a59b42f6..03383f1df 100644 --- a/vendor/golang.org/x/sys/windows/service.go +++ b/vendor/golang.org/x/sys/windows/service.go @@ -200,12 +200,19 @@ type SC_ACTION struct { Delay uint32 } +type QUERY_SERVICE_LOCK_STATUS struct { + IsLocked uint32 + LockOwner *uint16 + LockDuration uint32 +} + //sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle //sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW //sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW //sys DeleteService(service Handle) (err error) = advapi32.DeleteService //sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW //sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus +//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW //sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService //sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW //sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index ede2c9451..b23050924 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -172,8 +172,9 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CancelIo(s Handle) (err error) //sys CancelIoEx(s Handle, o *Overlapped) (err error) //sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW -//sys OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) +//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) //sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) = shell32.ShellExecuteW +//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath //sys TerminateProcess(handle Handle, exitcode uint32) (err error) //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) //sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW @@ -234,7 +235,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW //sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW //sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW -//sys getCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo @@ -243,6 +244,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot //sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW //sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW +//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) //sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) // This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. //sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW @@ -264,6 +267,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass //sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) //sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) +//sys GetProcessId(process Handle) (id uint32, err error) +//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW @@ -286,9 +291,11 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW //sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW //sys MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW -//sys clsidFromString(lpsz *uint16, pclsid *GUID) (err error) [failretval!=0] = ole32.CLSIDFromString -//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int) (chars int) = ole32.StringFromGUID2 +//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString +//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 //sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid +//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree +//sys rtlGetVersion(info *OsVersionInfoEx) (ret error) = ntdll.RtlGetVersion // syscall interface implementation for other packages @@ -1116,7 +1123,7 @@ func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { return syscall.EWINDOWS } -func Getpid() (pid int) { return int(getCurrentProcessId()) } +func Getpid() (pid int) { return int(GetCurrentProcessId()) } func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { // NOTE(rsc): The Win32finddata struct is wrong for the system call: @@ -1274,9 +1281,40 @@ func GenerateGUID() (GUID, error) { // in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". func (guid GUID) String() string { var str [100]uint16 - chars := stringFromGUID2(&guid, &str[0], len(str)) + chars := stringFromGUID2(&guid, &str[0], int32(len(str))) if chars <= 1 { return "" } return string(utf16.Decode(str[:chars-1])) } + +// KnownFolderPath returns a well-known folder path for the current user, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + return Token(0).KnownFolderPath(folderID, flags) +} + +// KnownFolderPath returns a well-known folder path for the user token, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + var p *uint16 + err := shGetKnownFolderPath(folderID, flags, t, &p) + if err != nil { + return "", err + } + defer CoTaskMemFree(unsafe.Pointer(p)) + return UTF16ToString((*[(1 << 30) - 1]uint16)(unsafe.Pointer(p))[:]), nil +} + +// RtlGetVersion returns the true version of the underlying operating system, ignoring +// any manifesting or compatibility layers on top of the win32 layer. +func RtlGetVersion() *OsVersionInfoEx { + info := &OsVersionInfoEx{} + info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) + // According to documentation, this function always succeeds. + // The function doesn't even check the validity of the + // osVersionInfoSize member. Disassembling ntdll.dll indicates + // that the documentation is indeed correct about that. + _ = rtlGetVersion(info) + return info +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 242a5a3c8..8a563f92b 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -659,6 +659,16 @@ type ProcessEntry32 struct { ExeFile [MAX_PATH]uint16 } +type ThreadEntry32 struct { + Size uint32 + Usage uint32 + ThreadID uint32 + OwnerProcessID uint32 + BasePri int32 + DeltaPri int32 + Flags uint32 +} + type Systemtime struct { Year uint16 Month uint16 @@ -1620,3 +1630,36 @@ const ( JobObjectNotificationLimitInformation2 = 34 JobObjectSecurityLimitInformation = 5 ) + +const ( + KF_FLAG_DEFAULT = 0x00000000 + KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 + KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 + KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 + KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 + KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 + KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 + KF_FLAG_CREATE = 0x00008000 + KF_FLAG_DONT_VERIFY = 0x00004000 + KF_FLAG_DONT_UNEXPAND = 0x00002000 + KF_FLAG_NO_ALIAS = 0x00001000 + KF_FLAG_INIT = 0x00000800 + KF_FLAG_DEFAULT_PATH = 0x00000400 + KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 + KF_FLAG_SIMPLE_IDLIST = 0x00000100 + KF_FLAG_ALIAS_ONLY = 0x80000000 +) + +type OsVersionInfoEx struct { + osVersionInfoSize uint32 + MajorVersion uint32 + MinorVersion uint32 + BuildNumber uint32 + PlatformId uint32 + CsdVersion [128]uint16 + ServicePackMajor uint16 + ServicePackMinor uint16 + SuiteMask uint16 + ProductType byte + _ byte +} diff --git a/vendor/golang.org/x/sys/windows/zerrors_windows.go b/vendor/golang.org/x/sys/windows/zerrors_windows.go index 2b4cea5b9..f02120035 100644 --- a/vendor/golang.org/x/sys/windows/zerrors_windows.go +++ b/vendor/golang.org/x/sys/windows/zerrors_windows.go @@ -1,4 +1,4 @@ -// Code generated by 'go generate'; DO NOT EDIT. +// Code generated by 'mkerrors.bash'; DO NOT EDIT. package windows diff --git a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go new file mode 100644 index 000000000..6048ac679 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go @@ -0,0 +1,149 @@ +// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. + +package windows + +type KNOWNFOLDERID GUID + +var ( + FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} + FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} + FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} + FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} + FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} + FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} + FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} + FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} + FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} + FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} + FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} + FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} + FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} + FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} + FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} + FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} + FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} + FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} + FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} + FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} + FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} + FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} + FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} + FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} + FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} + FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} + FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} + FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} + FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} + FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} + FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} + FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} + FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} + FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} + FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} + FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} + FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} + FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} + FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} + FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} + FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} + FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} + FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} + FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} + FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} + FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} + FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} + FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} + FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} + FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} + FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} + FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} + FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} + FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} + FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} + FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} + FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} + FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} + FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} + FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} + FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} + FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} + FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} + FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} + FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} + FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} + FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} + FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} + FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} + FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} + FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} + FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} + FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} + FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} + FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} + FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} + FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} + FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} + FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} + FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} + FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} + FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} + FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} + FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} + FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} + FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} + FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} + FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} + FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} + FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} + FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} + FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} + FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} + FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} + FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} + FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} + FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} + FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} + FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} + FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} + FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} + FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} + FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} + FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} + FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} + FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} + FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} + FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} + FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} + FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} + FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} + FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} + FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} + FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} + FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} + FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} + FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} + FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} + FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} + FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} + FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} + FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} + FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} + FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} + FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} + FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} + FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} + FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} + FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} + FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} + FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} + FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} + FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} + FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} + FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} + FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} + FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} + FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} + FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 55d2de150..d461bed98 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -43,6 +43,7 @@ var ( modcrypt32 = NewLazySystemDLL("crypt32.dll") moduser32 = NewLazySystemDLL("user32.dll") modole32 = NewLazySystemDLL("ole32.dll") + modntdll = NewLazySystemDLL("ntdll.dll") modws2_32 = NewLazySystemDLL("ws2_32.dll") moddnsapi = NewLazySystemDLL("dnsapi.dll") modiphlpapi = NewLazySystemDLL("iphlpapi.dll") @@ -60,6 +61,7 @@ var ( procDeleteService = modadvapi32.NewProc("DeleteService") procStartServiceW = modadvapi32.NewProc("StartServiceW") procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") + procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") procControlService = modadvapi32.NewProc("ControlService") procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") @@ -113,6 +115,7 @@ var ( procCreateProcessW = modkernel32.NewProc("CreateProcessW") procOpenProcess = modkernel32.NewProc("OpenProcess") procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") procTerminateProcess = modkernel32.NewProc("TerminateProcess") procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") @@ -182,6 +185,8 @@ var ( procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") procProcess32FirstW = modkernel32.NewProc("Process32FirstW") procProcess32NextW = modkernel32.NewProc("Process32NextW") + procThread32First = modkernel32.NewProc("Thread32First") + procThread32Next = modkernel32.NewProc("Thread32Next") procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") @@ -202,6 +207,8 @@ var ( procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") + procGetProcessId = modkernel32.NewProc("GetProcessId") + procOpenThread = modkernel32.NewProc("OpenThread") procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") @@ -225,6 +232,8 @@ var ( procCLSIDFromString = modole32.NewProc("CLSIDFromString") procStringFromGUID2 = modole32.NewProc("StringFromGUID2") procCoCreateGuid = modole32.NewProc("CoCreateGuid") + procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") + procRtlGetVersion = modntdll.NewProc("RtlGetVersion") procWSAStartup = modws2_32.NewProc("WSAStartup") procWSACleanup = modws2_32.NewProc("WSACleanup") procWSAIoctl = modws2_32.NewProc("WSAIoctl") @@ -423,6 +432,18 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { return } +func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + 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 { @@ -1069,14 +1090,14 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA return } -func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { +func OpenProcess(desiredAccess uint32, inheritHandle bool, processId 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)) + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) handle = Handle(r0) if handle == 0 { if e1 != 0 { @@ -1100,6 +1121,14 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui return } +func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { + r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + func TerminateProcess(handle Handle, exitcode uint32) (err error) { r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) if r1 == 0 { @@ -1826,7 +1855,7 @@ func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32 return } -func getCurrentProcessId() (pid uint32) { +func GetCurrentProcessId() (pid uint32) { r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) pid = uint32(r0) return @@ -1929,6 +1958,30 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { return } +func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + 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 { @@ -2170,6 +2223,38 @@ func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err erro return } +func GetProcessId(process Handle) (id uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + id = uint32(r0) + if id == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } else { + _p0 = 0 + } + r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + handle = Handle(r0) + if handle == 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 { @@ -2410,21 +2495,17 @@ func MessageBox(hwnd Handle, text *uint16, caption *uint16, boxtype uint32) (ret return } -func clsidFromString(lpsz *uint16, pclsid *GUID) (err error) { - r1, _, e1 := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) - if r1 != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } +func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) } return } -func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int) (chars int) { +func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) - chars = int(r0) + chars = int32(r0) return } @@ -2436,6 +2517,19 @@ func coCreateGuid(pguid *GUID) (ret error) { return } +func CoTaskMemFree(address unsafe.Pointer) { + syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + return +} + +func rtlGetVersion(info *OsVersionInfoEx) (ret error) { + r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + 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 { diff --git a/vendor/google.golang.org/api/drive/v2/drive-api.json b/vendor/google.golang.org/api/drive/v2/drive-api.json index 7c90eb85e..10aa595b1 100644 --- a/vendor/google.golang.org/api/drive/v2/drive-api.json +++ b/vendor/google.golang.org/api/drive/v2/drive-api.json @@ -38,7 +38,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/XBo3v2wypoRQ0OatiSPR_63Htp4\"", + "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/sPg4ftiBD1CFuyJFjn6aWg4p7EE\"", "icons": { "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" @@ -218,14 +218,25 @@ "required": true, "type": "string" }, + "driveId": { + "description": "The shared drive from which the change will be returned.", + "location": "query", + "type": "string" + }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The Team Drive from which the change will be returned.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -250,14 +261,25 @@ "httpMethod": "GET", "id": "drive.changes.getStartPageToken", "parameters": { + "driveId": { + "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", + "location": "query", + "type": "string" + }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -278,10 +300,15 @@ ] }, "list": { - "description": "Lists the changes for a user or Team Drive.", + "description": "Lists the changes for a user or shared drive.", "httpMethod": "GET", "id": "drive.changes.list", "parameters": { + "driveId": { + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "location": "query", + "type": "string" + }, "includeCorpusRemovals": { "default": "false", "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", @@ -294,6 +321,12 @@ "location": "query", "type": "boolean" }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeSubscribed": { "default": "true", "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", @@ -302,7 +335,7 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive files or changes should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -330,14 +363,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -363,6 +402,11 @@ "httpMethod": "POST", "id": "drive.changes.watch", "parameters": { + "driveId": { + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "location": "query", + "type": "string" + }, "includeCorpusRemovals": { "default": "false", "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", @@ -375,6 +419,12 @@ "location": "query", "type": "boolean" }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeSubscribed": { "default": "true", "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", @@ -383,7 +433,7 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive files or changes should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -411,14 +461,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -549,9 +605,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -838,6 +900,204 @@ } } }, + "drives": { + "methods": { + "delete": { + "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + "httpMethod": "DELETE", + "id": "drive.drives.delete", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}", + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "get": { + "description": "Gets a shared drive's metadata by ID.", + "httpMethod": "GET", + "id": "drive.drives.get", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives/{driveId}", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly" + ] + }, + "hide": { + "description": "Hides a shared drive from the default view.", + "httpMethod": "POST", + "id": "drive.drives.hide", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}/hide", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "insert": { + "description": "Creates a new shared drive.", + "httpMethod": "POST", + "id": "drive.drives.insert", + "parameterOrder": [ + "requestId" + ], + "parameters": { + "requestId": { + "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + "location": "query", + "required": true, + "type": "string" + } + }, + "path": "drives", + "request": { + "$ref": "Drive" + }, + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "list": { + "description": "Lists the user's shared drives.", + "httpMethod": "GET", + "id": "drive.drives.list", + "parameters": { + "maxResults": { + "default": "10", + "description": "Maximum number of shared drives to return.", + "format": "int32", + "location": "query", + "maximum": "100", + "minimum": "1", + "type": "integer" + }, + "pageToken": { + "description": "Page token for shared drives.", + "location": "query", + "type": "string" + }, + "q": { + "description": "Query string for searching shared drives.", + "location": "query", + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives", + "response": { + "$ref": "DriveList" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly" + ] + }, + "unhide": { + "description": "Restores a shared drive to the default view.", + "httpMethod": "POST", + "id": "drive.drives.unhide", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}/unhide", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "update": { + "description": "Updates the metadata for a shared drive.", + "httpMethod": "PUT", + "id": "drive.drives.update", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives/{driveId}", + "request": { + "$ref": "Drive" + }, + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + } + } + }, "files": { "methods": { "copy": { @@ -877,9 +1137,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -924,7 +1190,7 @@ ] }, "delete": { - "description": "Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.", + "description": "Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for shared drive files.", "httpMethod": "DELETE", "id": "drive.files.delete", "parameterOrder": [ @@ -937,9 +1203,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -1059,9 +1331,15 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1133,9 +1411,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1192,7 +1476,7 @@ "id": "drive.files.list", "parameters": { "corpora": { - "description": "Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'default'; all other values must be used in isolation. Prefer 'default' or 'teamDrive' to 'allTeamDrives' for efficiency.", + "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'drive' and 'allDrives'. Prefer 'default' or 'drive' to 'allDrives' for efficiency.", "location": "query", "type": "string" }, @@ -1209,9 +1493,20 @@ "location": "query", "type": "string" }, + "driveId": { + "description": "ID of the shared drive to search.", + "location": "query", + "type": "string" + }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive items should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1256,14 +1551,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "ID of Team Drive to search.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -1363,9 +1664,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1422,9 +1729,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -1442,7 +1755,7 @@ ] }, "trash": { - "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for Team Drive files.", + "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for shared drive files.", "httpMethod": "POST", "id": "drive.files.trash", "parameterOrder": [ @@ -1455,9 +1768,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -1487,9 +1806,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -1601,9 +1926,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1685,9 +2016,15 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1801,9 +2138,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -1855,7 +2198,7 @@ "permissions": { "methods": { "delete": { - "description": "Deletes a permission from a file or Team Drive.", + "description": "Deletes a permission from a file or shared drive.", "httpMethod": "DELETE", "id": "drive.permissions.delete", "parameterOrder": [ @@ -1864,7 +2207,7 @@ ], "parameters": { "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1875,15 +2218,21 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1904,7 +2253,7 @@ ], "parameters": { "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1915,15 +2264,21 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1972,7 +2327,7 @@ ] }, "insert": { - "description": "Inserts a permission for a file or Team Drive.", + "description": "Inserts a permission for a file or shared drive.", "httpMethod": "POST", "id": "drive.permissions.insert", "parameterOrder": [ @@ -1985,7 +2340,7 @@ "type": "string" }, "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1996,15 +2351,21 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -2022,7 +2383,7 @@ ] }, "list": { - "description": "Lists a file's or Team Drive's permissions.", + "description": "Lists a file's or shared drive's permissions.", "httpMethod": "GET", "id": "drive.permissions.list", "parameterOrder": [ @@ -2030,13 +2391,13 @@ ], "parameters": { "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" }, "maxResults": { - "description": "The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.", + "description": "The maximum number of permissions to return per page. When not set for files in a shared drive, at most 100 results will be returned. When not set for files that are not in a shared drive, the entire list will be returned.", "format": "int32", "location": "query", "maximum": "100", @@ -2048,15 +2409,21 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -2084,7 +2451,7 @@ ], "parameters": { "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -2101,9 +2468,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -2115,7 +2488,7 @@ }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -2142,7 +2515,7 @@ ], "parameters": { "fileId": { - "description": "The ID for the file or Team Drive.", + "description": "The ID for the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -2159,9 +2532,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -2173,7 +2552,7 @@ }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -2930,7 +3309,7 @@ "teamdrives": { "methods": { "delete": { - "description": "Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.", + "description": "Deprecated use drives.delete instead.", "httpMethod": "DELETE", "id": "drive.teamdrives.delete", "parameterOrder": [ @@ -2950,7 +3329,7 @@ ] }, "get": { - "description": "Gets a Team Drive's metadata by ID.", + "description": "Deprecated use drives.get instead.", "httpMethod": "GET", "id": "drive.teamdrives.get", "parameterOrder": [ @@ -2980,7 +3359,7 @@ ] }, "insert": { - "description": "Creates a new Team Drive.", + "description": "Deprecated use drives.insert instead.", "httpMethod": "POST", "id": "drive.teamdrives.insert", "parameterOrder": [ @@ -3006,7 +3385,7 @@ ] }, "list": { - "description": "Lists the user's Team Drives.", + "description": "Deprecated use drives.list instead.", "httpMethod": "GET", "id": "drive.teamdrives.list", "parameters": { @@ -3046,7 +3425,7 @@ ] }, "update": { - "description": "Updates a Team Drive's metadata", + "description": "Deprecated use drives.update instead.", "httpMethod": "PUT", "id": "drive.teamdrives.update", "parameterOrder": [ @@ -3080,7 +3459,7 @@ } } }, - "revision": "20190311", + "revision": "20190501", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -3120,14 +3499,39 @@ }, "type": "array" }, + "canCreateDrives": { + "description": "Whether the user can create shared drives.", + "type": "boolean" + }, "canCreateTeamDrives": { - "description": "Whether the user can create Team Drives.", + "description": "Deprecated - use canCreateDrives instead.", "type": "boolean" }, "domainSharingPolicy": { "description": "The domain sharing policy for the current user. Possible values are: \n- allowed \n- allowedWithWarning \n- incomingOnly \n- disallowed", "type": "string" }, + "driveThemes": { + "description": "A list of themes that are supported for shared drives.", + "items": { + "properties": { + "backgroundImageLink": { + "description": "A link to this theme's background image.", + "type": "string" + }, + "colorRgb": { + "description": "The color of this theme as an RGB hex string.", + "type": "string" + }, + "id": { + "description": "The ID of the theme.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, "etag": { "description": "The ETag of the item.", "type": "string" @@ -3297,19 +3701,19 @@ "type": "string" }, "teamDriveThemes": { - "description": "A list of themes that are supported for Team Drives.", + "description": "Deprecated - use driveThemes instead.", "items": { "properties": { "backgroundImageLink": { - "description": "A link to this Team Drive theme's background image.", + "description": "Deprecated - use driveThemes/backgroundImageLink instead.", "type": "string" }, "colorRgb": { - "description": "The color of this Team Drive theme as an RGB hex string.", + "description": "Deprecated - use driveThemes/colorRgb instead.", "type": "string" }, "id": { - "description": "The ID of the theme.", + "description": "Deprecated - use driveThemes/id instead.", "type": "string" } }, @@ -3493,13 +3897,25 @@ "type": "object" }, "Change": { - "description": "Representation of a change to a file or Team Drive.", + "description": "Representation of a change to a file or shared drive.", "id": "Change", "properties": { + "changeType": { + "description": "The type of the change. Possible values are file and drive.", + "type": "string" + }, "deleted": { - "description": "Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.", + "description": "Whether the file or shared drive has been removed from this list of changes, for example by deletion or loss of access.", "type": "boolean" }, + "drive": { + "$ref": "Drive", + "description": "The updated state of the shared drive. Present if the changeType is drive, the user is still a member of the shared drive, and the shared drive has not been deleted." + }, + "driveId": { + "description": "The ID of the shared drive associated with this change.", + "type": "string" + }, "file": { "$ref": "File", "description": "The updated state of the file. Present if the type is file and the file has not been removed from this list of changes." @@ -3529,14 +3945,14 @@ }, "teamDrive": { "$ref": "TeamDrive", - "description": "The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been deleted." + "description": "Deprecated - use drive instead." }, "teamDriveId": { - "description": "The ID of the Team Drive associated with this change.", + "description": "Deprecated - use driveId instead.", "type": "string" }, "type": { - "description": "The type of the change. Possible values are file and teamDrive.", + "description": "Deprecated - use changeType instead.", "type": "string" } }, @@ -3907,6 +4323,200 @@ }, "type": "object" }, + "Drive": { + "description": "Representation of a shared drive.", + "id": "Drive", + "properties": { + "backgroundImageFile": { + "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on drive.drives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "properties": { + "id": { + "description": "The ID of an image file in Google Drive to use for the background image.", + "type": "string" + }, + "width": { + "description": "The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.", + "format": "float", + "type": "number" + }, + "xCoordinate": { + "description": "The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.", + "format": "float", + "type": "number" + }, + "yCoordinate": { + "description": "The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "description": "A short-lived link to this shared drive's background image.", + "type": "string" + }, + "capabilities": { + "description": "Capabilities the current user has on this shared drive.", + "properties": { + "canAddChildren": { + "description": "Whether the current user can add children to folders in this shared drive.", + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.", + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive.", + "type": "boolean" + }, + "canChangeDriveBackground": { + "description": "Whether the current user can change the background of this shared drive.", + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive.", + "type": "boolean" + }, + "canComment": { + "description": "Whether the current user can comment on files in this shared drive.", + "type": "boolean" + }, + "canCopy": { + "description": "Whether the current user can copy files in this shared drive.", + "type": "boolean" + }, + "canDeleteChildren": { + "description": "Whether the current user can delete children from folders in this shared drive.", + "type": "boolean" + }, + "canDeleteDrive": { + "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", + "type": "boolean" + }, + "canDownload": { + "description": "Whether the current user can download files in this shared drive.", + "type": "boolean" + }, + "canEdit": { + "description": "Whether the current user can edit files in this shared drive", + "type": "boolean" + }, + "canListChildren": { + "description": "Whether the current user can list the children of folders in this shared drive.", + "type": "boolean" + }, + "canManageMembers": { + "description": "Whether the current user can add members to this shared drive or remove them or change their role.", + "type": "boolean" + }, + "canReadRevisions": { + "description": "Whether the current user can read the revisions resource of files in this shared drive.", + "type": "boolean" + }, + "canRename": { + "description": "Whether the current user can rename files or folders in this shared drive.", + "type": "boolean" + }, + "canRenameDrive": { + "description": "Whether the current user can rename this shared drive.", + "type": "boolean" + }, + "canShare": { + "description": "Whether the current user can share files or folders in this shared drive.", + "type": "boolean" + }, + "canTrashChildren": { + "description": "Whether the current user can trash children from folders in this shared drive.", + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "description": "The color of this shared drive as an RGB hex string. It can only be set on a drive.drives.update request that does not set themeId.", + "type": "string" + }, + "createdDate": { + "description": "The time at which the shared drive was created (RFC 3339 date-time).", + "format": "date-time", + "type": "string" + }, + "hidden": { + "description": "Whether the shared drive is hidden from default view.", + "type": "boolean" + }, + "id": { + "description": "The ID of this shared drive which is also the ID of the top level folder of this shared drive.", + "type": "string" + }, + "kind": { + "default": "drive#drive", + "description": "This is always drive#drive", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "drive.drives.insert" + ] + }, + "description": "The name of this shared drive.", + "type": "string" + }, + "restrictions": { + "description": "A set of restrictions that apply to this shared drive or items inside this shared drive.", + "properties": { + "adminManagedRestrictions": { + "description": "Whether administrative privileges on this shared drive are required to modify restrictions.", + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive.", + "type": "boolean" + }, + "domainUsersOnly": { + "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive.", + "type": "boolean" + }, + "driveMembersOnly": { + "description": "Whether access to items inside this shared drive is restricted to its members.", + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "description": "The ID of the theme from which the background image and color will be set. The set of possible driveThemes can be retrieved from a drive.about.get response. When not specified on a drive.drives.insert request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "type": "string" + } + }, + "type": "object" + }, + "DriveList": { + "description": "A list of shared drives.", + "id": "DriveList", + "properties": { + "items": { + "description": "The list of shared drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.", + "items": { + "$ref": "Drive" + }, + "type": "array" + }, + "kind": { + "default": "drive#driveList", + "description": "This is always drive#driveList", + "type": "string" + }, + "nextPageToken": { + "description": "The page token for the next page of shared drives. This will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "type": "string" + } + }, + "type": "object" + }, "File": { "description": "The metadata for a file.", "id": "File", @@ -3947,7 +4557,7 @@ "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", + "description": "Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", "type": "boolean" }, "canDelete": { @@ -3955,7 +4565,7 @@ "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canDownload": { @@ -3970,40 +4580,60 @@ "description": "Whether the current user can list the children of this folder. This is always false when the item is not a folder.", "type": "boolean" }, + "canMoveChildrenOutOfDrive": { + "description": "Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", + "type": "boolean" + }, "canMoveChildrenOutOfTeamDrive": { - "description": "Whether the current user can move children of this folder outside of the Team Drive. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveChildrenOutOfDrive instead.", + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "description": "Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canMoveChildrenWithinTeamDrive": { - "description": "Whether the current user can move children of this folder within the Team Drive. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveChildrenWithinDrive instead.", "type": "boolean" }, "canMoveItemIntoTeamDrive": { - "description": "Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.", + "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "description": "Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", "type": "boolean" }, "canMoveItemOutOfTeamDrive": { - "description": "Whether the current user can move this Team Drive item outside of this Team Drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "description": "Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.", "type": "boolean" }, "canMoveItemWithinTeamDrive": { - "description": "Whether the current user can move this Team Drive item within this Team Drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveItemWithinDrive instead.", "type": "boolean" }, "canMoveTeamDriveItem": { - "description": "Deprecated - use canMoveItemWithinTeamDrive or canMoveItemOutOfTeamDrive instead.", + "description": "Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canReadDrive": { + "description": "Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", + "description": "Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", "type": "boolean" }, "canReadTeamDrive": { - "description": "Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.", + "description": "Deprecated - use canReadDrive instead.", "type": "boolean" }, "canRemoveChildren": { - "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For Team Drive items, use canDeleteChildren or canTrashChildren instead.", + "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.", "type": "boolean" }, "canRename": { @@ -4019,7 +4649,7 @@ "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canUntrash": { @@ -4051,7 +4681,11 @@ "type": "string" }, "downloadUrl": { - "description": "Short lived download URL for the file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "Short lived download URL for the file. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", + "type": "string" + }, + "driveId": { + "description": "ID of the shared drive the file resides in. Only populated for items in shared drives.", "type": "string" }, "editable": { @@ -4079,24 +4713,24 @@ "type": "object" }, "fileExtension": { - "description": "The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "type": "string" }, "fileSize": { - "description": "The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "The size of the file in bytes. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "format": "int64", "type": "string" }, "folderColorRgb": { - "description": "Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for Team Drive files.", + "description": "Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette. Not populated for items in shared drives.", "type": "string" }, "fullFileExtension": { - "description": "The full file extension; extracted from the title. May contain multiple concatenated extensions, such as \"tar.gz\". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "The full file extension; extracted from the title. May contain multiple concatenated extensions, such as \"tar.gz\". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "type": "string" }, "hasAugmentedPermissions": { - "description": "Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.", + "description": "Whether any users are granted file access directly on this file. This field is only populated for items in shared drives.", "type": "boolean" }, "hasThumbnail": { @@ -4104,7 +4738,7 @@ "type": "boolean" }, "headRevisionId": { - "description": "The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "The ID of the file's head revision. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "type": "string" }, "iconLink": { @@ -4300,7 +4934,7 @@ "type": "string" }, "md5Checksum": { - "description": "An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.", + "description": "An MD5 checksum for the content of this file. This field is only populated for files with content stored in Google Drive; it is not populated for Google Docs or shortcut files.", "type": "string" }, "mimeType": { @@ -4325,22 +4959,22 @@ "type": "object" }, "originalFilename": { - "description": "The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Drive.", + "description": "The original filename of the uploaded content if available, or else the original value of the title field. This is only available for files with binary content in Google Drive.", "type": "string" }, "ownedByMe": { - "description": "Whether the file is owned by the current user. Not populated for Team Drive files.", + "description": "Whether the file is owned by the current user. Not populated for items in shared drives.", "type": "boolean" }, "ownerNames": { - "description": "Name(s) of the owner(s) of this file. Not populated for Team Drive files.", + "description": "Name(s) of the owner(s) of this file. Not populated for items in shared drives.", "items": { "type": "string" }, "type": "array" }, "owners": { - "description": "The owner(s) of this file. Not populated for Team Drive files.", + "description": "The owner(s) of this file. Not populated for items in shared drives.", "items": { "$ref": "User" }, @@ -4361,7 +4995,7 @@ "type": "array" }, "permissions": { - "description": "The list of permissions for users with access to this file. Not populated for Team Drive files.", + "description": "The list of permissions for users with access to this file. Not populated for items in shared drives.", "items": { "$ref": "Permission" }, @@ -4388,7 +5022,7 @@ "type": "boolean" }, "shared": { - "description": "Whether the file has been shared. Not populated for Team Drive files.", + "description": "Whether the file has been shared. Not populated for items in shared drives.", "type": "boolean" }, "sharedWithMeDate": { @@ -4408,11 +5042,11 @@ "type": "array" }, "teamDriveId": { - "description": "ID of the Team Drive the file resides in.", + "description": "Deprecated - use driveId instead.", "type": "string" }, "thumbnail": { - "description": "A thumbnail for the file. This will only be used if Drive cannot generate a standard thumbnail.", + "description": "A thumbnail for the file. This will only be used if a standard thumbnail cannot be generated.", "properties": { "image": { "description": "The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.", @@ -4436,17 +5070,17 @@ "type": "string" }, "title": { - "description": "The title of this file. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the title is constant.", + "description": "The title of this file. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the title is constant.", "type": "string" }, "trashedDate": { - "description": "The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for Team Drive files.", + "description": "The time that the item was trashed (formatted RFC 3339 timestamp). Only populated for items in shared drives.", "format": "date-time", "type": "string" }, "trashingUser": { "$ref": "User", - "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files." + "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." }, "userPermission": { "$ref": "Permission", @@ -4487,7 +5121,7 @@ "type": "string" }, "writersCanShare": { - "description": "Whether writers can share the document with other users. Not populated for Team Drive files.", + "description": "Whether writers can share the document with other users. Not populated for items in shared drives.", "type": "boolean" } }, @@ -4502,7 +5136,7 @@ "type": "string" }, "incompleteSearch": { - "description": "Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple Team Drives with the \"default,allTeamDrives\" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as \"default\" or \"teamDrive\".", + "description": "Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple drives with the \"allDrives\" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as \"default\" or \"drive\".", "type": "boolean" }, "items": { @@ -4664,6 +5298,38 @@ "description": "The name for this permission.", "type": "string" }, + "permissionDetails": { + "description": "Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", + "items": { + "properties": { + "additionalRoles": { + "description": "Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inherited": { + "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "type": "boolean" + }, + "inheritedFrom": { + "description": "The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.", + "type": "string" + }, + "permissionType": { + "description": "The permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "type": "string" + }, + "role": { + "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- reader", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, "photoLink": { "description": "A link to the profile photo, if available.", "type": "string" @@ -4682,30 +5348,30 @@ "type": "string" }, "teamDrivePermissionDetails": { - "description": "Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.", + "description": "Deprecated - use permissionDetails instead.", "items": { "properties": { "additionalRoles": { - "description": "Additional roles for this user. Only commenter is currently possible, though more may be supported in the future.", + "description": "Deprecated - use permissionDetails/additionalRoles instead.", "items": { "type": "string" }, "type": "array" }, "inherited": { - "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "description": "Deprecated - use permissionDetails/inherited instead.", "type": "boolean" }, "inheritedFrom": { - "description": "The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.", + "description": "Deprecated - use permissionDetails/inheritedFrom instead.", "type": "string" }, "role": { - "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- reader", + "description": "Deprecated - use permissionDetails/role instead.", "type": "string" }, "teamDrivePermissionType": { - "description": "The Team Drive permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "description": "Deprecated - use permissionDetails/permissionType instead.", "type": "string" } }, @@ -4977,7 +5643,7 @@ "type": "object" }, "TeamDrive": { - "description": "Representation of a Team Drive.", + "description": "Deprecated: use the drive collection instead.", "id": "TeamDrive", "properties": { "backgroundImageFile": { diff --git a/vendor/google.golang.org/api/drive/v2/drive-gen.go b/vendor/google.golang.org/api/drive/v2/drive-gen.go index 3c36259d3..02a40f495 100644 --- a/vendor/google.golang.org/api/drive/v2/drive-gen.go +++ b/vendor/google.golang.org/api/drive/v2/drive-gen.go @@ -154,6 +154,7 @@ func New(client *http.Client) (*Service, error) { s.Channels = NewChannelsService(s) s.Children = NewChildrenService(s) s.Comments = NewCommentsService(s) + s.Drives = NewDrivesService(s) s.Files = NewFilesService(s) s.Parents = NewParentsService(s) s.Permissions = NewPermissionsService(s) @@ -182,6 +183,8 @@ type Service struct { Comments *CommentsService + Drives *DrivesService + Files *FilesService Parents *ParentsService @@ -260,6 +263,15 @@ type CommentsService struct { s *Service } +func NewDrivesService(s *Service) *DrivesService { + rs := &DrivesService{s: s} + return rs +} + +type DrivesService struct { + s *Service +} + func NewFilesService(s *Service) *FilesService { rs := &FilesService{s: s} return rs @@ -338,7 +350,10 @@ type About struct { // file type. The most specific type takes precedence. AdditionalRoleInfo []*AboutAdditionalRoleInfo `json:"additionalRoleInfo,omitempty"` - // CanCreateTeamDrives: Whether the user can create Team Drives. + // CanCreateDrives: Whether the user can create shared drives. + CanCreateDrives bool `json:"canCreateDrives,omitempty"` + + // CanCreateTeamDrives: Deprecated - use canCreateDrives instead. CanCreateTeamDrives bool `json:"canCreateTeamDrives,omitempty"` // DomainSharingPolicy: The domain sharing policy for the current user. @@ -349,6 +364,9 @@ type About struct { // - disallowed DomainSharingPolicy string `json:"domainSharingPolicy,omitempty"` + // DriveThemes: A list of themes that are supported for shared drives. + DriveThemes []*AboutDriveThemes `json:"driveThemes,omitempty"` + // Etag: The ETag of the item. Etag string `json:"etag,omitempty"` @@ -425,7 +443,7 @@ type About struct { // SelfLink: A link back to this item. SelfLink string `json:"selfLink,omitempty"` - // TeamDriveThemes: A list of themes that are supported for Team Drives. + // TeamDriveThemes: Deprecated - use driveThemes instead. TeamDriveThemes []*AboutTeamDriveThemes `json:"teamDriveThemes,omitempty"` // User: The authenticated user. @@ -521,6 +539,40 @@ func (s *AboutAdditionalRoleInfoRoleSets) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type AboutDriveThemes struct { + // BackgroundImageLink: A link to this theme's background image. + BackgroundImageLink string `json:"backgroundImageLink,omitempty"` + + // ColorRgb: The color of this theme as an RGB hex string. + ColorRgb string `json:"colorRgb,omitempty"` + + // Id: The ID of the theme. + Id string `json:"id,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BackgroundImageLink") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BackgroundImageLink") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AboutDriveThemes) MarshalJSON() ([]byte, error) { + type NoMethod AboutDriveThemes + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type AboutExportFormats struct { // Source: The content type to convert from. Source string `json:"source,omitempty"` @@ -687,14 +739,14 @@ func (s *AboutQuotaBytesByService) MarshalJSON() ([]byte, error) { } type AboutTeamDriveThemes struct { - // BackgroundImageLink: A link to this Team Drive theme's background - // image. + // BackgroundImageLink: Deprecated - use driveThemes/backgroundImageLink + // instead. BackgroundImageLink string `json:"backgroundImageLink,omitempty"` - // ColorRgb: The color of this Team Drive theme as an RGB hex string. + // ColorRgb: Deprecated - use driveThemes/colorRgb instead. ColorRgb string `json:"colorRgb,omitempty"` - // Id: The ID of the theme. + // Id: Deprecated - use driveThemes/id instead. Id string `json:"id,omitempty"` // ForceSendFields is a list of field names (e.g. "BackgroundImageLink") @@ -917,12 +969,24 @@ func (s *AppList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Change: Representation of a change to a file or Team Drive. +// Change: Representation of a change to a file or shared drive. type Change struct { - // Deleted: Whether the file or Team Drive has been removed from this + // ChangeType: The type of the change. Possible values are file and + // drive. + ChangeType string `json:"changeType,omitempty"` + + // Deleted: Whether the file or shared drive has been removed from this // list of changes, for example by deletion or loss of access. Deleted bool `json:"deleted,omitempty"` + // Drive: The updated state of the shared drive. Present if the + // changeType is drive, the user is still a member of the shared drive, + // and the shared drive has not been deleted. + Drive *Drive `json:"drive,omitempty"` + + // DriveId: The ID of the shared drive associated with this change. + DriveId string `json:"driveId,omitempty"` + // File: The updated state of the file. Present if the type is file and // the file has not been removed from this list of changes. File *File `json:"file,omitempty"` @@ -942,22 +1006,20 @@ type Change struct { // SelfLink: A link back to this change. SelfLink string `json:"selfLink,omitempty"` - // TeamDrive: The updated state of the Team Drive. Present if the type - // is teamDrive, the user is still a member of the Team Drive, and the - // Team Drive has not been deleted. + // TeamDrive: Deprecated - use drive instead. TeamDrive *TeamDrive `json:"teamDrive,omitempty"` - // TeamDriveId: The ID of the Team Drive associated with this change. + // TeamDriveId: Deprecated - use driveId instead. TeamDriveId string `json:"teamDriveId,omitempty"` - // Type: The type of the change. Possible values are file and teamDrive. + // Type: Deprecated - use changeType instead. Type string `json:"type,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Deleted") to + // ForceSendFields is a list of field names (e.g. "ChangeType") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -965,7 +1027,7 @@ type Change struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Deleted") to include in + // NullFields is a list of field names (e.g. "ChangeType") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as @@ -1480,6 +1542,349 @@ func (s *CommentReplyList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Drive: Representation of a shared drive. +type Drive struct { + // BackgroundImageFile: An image file and cropping parameters from which + // a background image for this shared drive is set. This is a write only + // field; it can only be set on drive.drives.update requests that don't + // set themeId. When specified, all fields of the backgroundImageFile + // must be set. + BackgroundImageFile *DriveBackgroundImageFile `json:"backgroundImageFile,omitempty"` + + // BackgroundImageLink: A short-lived link to this shared drive's + // background image. + BackgroundImageLink string `json:"backgroundImageLink,omitempty"` + + // Capabilities: Capabilities the current user has on this shared drive. + Capabilities *DriveCapabilities `json:"capabilities,omitempty"` + + // ColorRgb: The color of this shared drive as an RGB hex string. It can + // only be set on a drive.drives.update request that does not set + // themeId. + ColorRgb string `json:"colorRgb,omitempty"` + + // CreatedDate: The time at which the shared drive was created (RFC 3339 + // date-time). + CreatedDate string `json:"createdDate,omitempty"` + + // Hidden: Whether the shared drive is hidden from default view. + Hidden bool `json:"hidden,omitempty"` + + // Id: The ID of this shared drive which is also the ID of the top level + // folder of this shared drive. + Id string `json:"id,omitempty"` + + // Kind: This is always drive#drive + Kind string `json:"kind,omitempty"` + + // Name: The name of this shared drive. + Name string `json:"name,omitempty"` + + // Restrictions: A set of restrictions that apply to this shared drive + // or items inside this shared drive. + Restrictions *DriveRestrictions `json:"restrictions,omitempty"` + + // ThemeId: The ID of the theme from which the background image and + // color will be set. The set of possible driveThemes can be retrieved + // from a drive.about.get response. When not specified on a + // drive.drives.insert request, a random theme is chosen from which the + // background image and color are set. This is a write-only field; it + // can only be set on requests that don't set colorRgb or + // backgroundImageFile. + ThemeId string `json:"themeId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "BackgroundImageFile") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BackgroundImageFile") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Drive) MarshalJSON() ([]byte, error) { + type NoMethod Drive + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveBackgroundImageFile: An image file and cropping parameters from +// which a background image for this shared drive is set. This is a +// write only field; it can only be set on drive.drives.update requests +// that don't set themeId. When specified, all fields of the +// backgroundImageFile must be set. +type DriveBackgroundImageFile struct { + // Id: The ID of an image file in Google Drive to use for the background + // image. + Id string `json:"id,omitempty"` + + // Width: The width of the cropped image in the closed range of 0 to 1. + // This value represents the width of the cropped image divided by the + // width of the entire image. The height is computed by applying a width + // to height aspect ratio of 80 to 9. The resulting image must be at + // least 1280 pixels wide and 144 pixels high. + Width float64 `json:"width,omitempty"` + + // XCoordinate: The X coordinate of the upper left corner of the + // cropping area in the background image. This is a value in the closed + // range of 0 to 1. This value represents the horizontal distance from + // the left side of the entire image to the left side of the cropping + // area divided by the width of the entire image. + XCoordinate float64 `json:"xCoordinate,omitempty"` + + // YCoordinate: The Y coordinate of the upper left corner of the + // cropping area in the background image. This is a value in the closed + // range of 0 to 1. This value represents the vertical distance from the + // top side of the entire image to the top side of the cropping area + // divided by the height of the entire image. + YCoordinate float64 `json:"yCoordinate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DriveBackgroundImageFile) MarshalJSON() ([]byte, error) { + type NoMethod DriveBackgroundImageFile + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *DriveBackgroundImageFile) UnmarshalJSON(data []byte) error { + type NoMethod DriveBackgroundImageFile + var s1 struct { + Width gensupport.JSONFloat64 `json:"width"` + XCoordinate gensupport.JSONFloat64 `json:"xCoordinate"` + YCoordinate gensupport.JSONFloat64 `json:"yCoordinate"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Width = float64(s1.Width) + s.XCoordinate = float64(s1.XCoordinate) + s.YCoordinate = float64(s1.YCoordinate) + return nil +} + +// DriveCapabilities: Capabilities the current user has on this shared +// drive. +type DriveCapabilities struct { + // CanAddChildren: Whether the current user can add children to folders + // in this shared drive. + CanAddChildren bool `json:"canAddChildren,omitempty"` + + // CanChangeCopyRequiresWriterPermissionRestriction: Whether the current + // user can change the copyRequiresWriterPermission restriction of this + // shared drive. + CanChangeCopyRequiresWriterPermissionRestriction bool `json:"canChangeCopyRequiresWriterPermissionRestriction,omitempty"` + + // CanChangeDomainUsersOnlyRestriction: Whether the current user can + // change the domainUsersOnly restriction of this shared drive. + CanChangeDomainUsersOnlyRestriction bool `json:"canChangeDomainUsersOnlyRestriction,omitempty"` + + // CanChangeDriveBackground: Whether the current user can change the + // background of this shared drive. + CanChangeDriveBackground bool `json:"canChangeDriveBackground,omitempty"` + + // CanChangeDriveMembersOnlyRestriction: Whether the current user can + // change the driveMembersOnly restriction of this shared drive. + CanChangeDriveMembersOnlyRestriction bool `json:"canChangeDriveMembersOnlyRestriction,omitempty"` + + // CanComment: Whether the current user can comment on files in this + // shared drive. + CanComment bool `json:"canComment,omitempty"` + + // CanCopy: Whether the current user can copy files in this shared + // drive. + CanCopy bool `json:"canCopy,omitempty"` + + // CanDeleteChildren: Whether the current user can delete children from + // folders in this shared drive. + CanDeleteChildren bool `json:"canDeleteChildren,omitempty"` + + // CanDeleteDrive: Whether the current user can delete this shared + // drive. Attempting to delete the shared drive may still fail if there + // are untrashed items inside the shared drive. + CanDeleteDrive bool `json:"canDeleteDrive,omitempty"` + + // CanDownload: Whether the current user can download files in this + // shared drive. + CanDownload bool `json:"canDownload,omitempty"` + + // CanEdit: Whether the current user can edit files in this shared drive + CanEdit bool `json:"canEdit,omitempty"` + + // CanListChildren: Whether the current user can list the children of + // folders in this shared drive. + CanListChildren bool `json:"canListChildren,omitempty"` + + // CanManageMembers: Whether the current user can add members to this + // shared drive or remove them or change their role. + CanManageMembers bool `json:"canManageMembers,omitempty"` + + // CanReadRevisions: Whether the current user can read the revisions + // resource of files in this shared drive. + CanReadRevisions bool `json:"canReadRevisions,omitempty"` + + // CanRename: Whether the current user can rename files or folders in + // this shared drive. + CanRename bool `json:"canRename,omitempty"` + + // CanRenameDrive: Whether the current user can rename this shared + // drive. + CanRenameDrive bool `json:"canRenameDrive,omitempty"` + + // CanShare: Whether the current user can share files or folders in this + // shared drive. + CanShare bool `json:"canShare,omitempty"` + + // CanTrashChildren: Whether the current user can trash children from + // folders in this shared drive. + CanTrashChildren bool `json:"canTrashChildren,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CanAddChildren") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CanAddChildren") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DriveCapabilities) MarshalJSON() ([]byte, error) { + type NoMethod DriveCapabilities + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveRestrictions: A set of restrictions that apply to this shared +// drive or items inside this shared drive. +type DriveRestrictions struct { + // AdminManagedRestrictions: Whether administrative privileges on this + // shared drive are required to modify restrictions. + AdminManagedRestrictions bool `json:"adminManagedRestrictions,omitempty"` + + // CopyRequiresWriterPermission: Whether the options to copy, print, or + // download files inside this shared drive, should be disabled for + // readers and commenters. When this restriction is set to true, it will + // override the similarly named field to true for any file inside this + // shared drive. + CopyRequiresWriterPermission bool `json:"copyRequiresWriterPermission,omitempty"` + + // DomainUsersOnly: Whether access to this shared drive and items inside + // this shared drive is restricted to users of the domain to which this + // shared drive belongs. This restriction may be overridden by other + // sharing policies controlled outside of this shared drive. + DomainUsersOnly bool `json:"domainUsersOnly,omitempty"` + + // DriveMembersOnly: Whether access to items inside this shared drive is + // restricted to its members. + DriveMembersOnly bool `json:"driveMembersOnly,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AdminManagedRestrictions") to unconditionally include in API + // requests. By default, fields with empty values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdminManagedRestrictions") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DriveRestrictions) MarshalJSON() ([]byte, error) { + type NoMethod DriveRestrictions + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveList: A list of shared drives. +type DriveList struct { + // Items: The list of shared drives. If nextPageToken is populated, then + // this list may be incomplete and an additional page of results should + // be fetched. + Items []*Drive `json:"items,omitempty"` + + // Kind: This is always drive#driveList + Kind string `json:"kind,omitempty"` + + // NextPageToken: The page token for the next page of shared drives. + // This will be absent if the end of the list has been reached. If the + // token is rejected for any reason, it should be discarded, and + // pagination should be restarted from the first page of results. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Items") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DriveList) MarshalJSON() ([]byte, error) { + type NoMethod DriveList + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // File: The metadata for a file. type File struct { // AlternateLink: A link for opening the file in a relevant Google @@ -1519,10 +1924,14 @@ type File struct { Description string `json:"description,omitempty"` // DownloadUrl: Short lived download URL for the file. This field is - // only populated for files with content stored in Drive; it is not - // populated for Google Docs or shortcut files. + // only populated for files with content stored in Google Drive; it is + // not populated for Google Docs or shortcut files. DownloadUrl string `json:"downloadUrl,omitempty"` + // DriveId: ID of the shared drive the file resides in. Only populated + // for items in shared drives. + DriveId string `json:"driveId,omitempty"` + // Editable: Deprecated: use capabilities/canEdit. Editable bool `json:"editable,omitempty"` @@ -1541,33 +1950,33 @@ type File struct { // FileExtension: The final component of fullFileExtension with trailing // text that does not appear to be part of the extension removed. This - // field is only populated for files with content stored in Drive; it is - // not populated for Google Docs or shortcut files. + // field is only populated for files with content stored in Google + // Drive; it is not populated for Google Docs or shortcut files. FileExtension string `json:"fileExtension,omitempty"` // FileSize: The size of the file in bytes. This field is only populated - // for files with content stored in Drive; it is not populated for - // Google Docs or shortcut files. + // for files with content stored in Google Drive; it is not populated + // for Google Docs or shortcut files. FileSize int64 `json:"fileSize,omitempty,string"` // FolderColorRgb: Folder color as an RGB hex string if the file is a // folder. The list of supported colors is available in the // folderColorPalette field of the About resource. If an unsupported // color is specified, it will be changed to the closest color in the - // palette. Not populated for Team Drive files. + // palette. Not populated for items in shared drives. FolderColorRgb string `json:"folderColorRgb,omitempty"` // FullFileExtension: The full file extension; extracted from the title. // May contain multiple concatenated extensions, such as "tar.gz". // Removing an extension from the title does not clear this field; // however, changing the extension on the title does update this field. - // This field is only populated for files with content stored in Drive; - // it is not populated for Google Docs or shortcut files. + // This field is only populated for files with content stored in Google + // Drive; it is not populated for Google Docs or shortcut files. FullFileExtension string `json:"fullFileExtension,omitempty"` // HasAugmentedPermissions: Whether any users are granted file access - // directly on this file. This field is only populated for Team Drive - // files. + // directly on this file. This field is only populated for items in + // shared drives. HasAugmentedPermissions bool `json:"hasAugmentedPermissions,omitempty"` // HasThumbnail: Whether this file has a thumbnail. This does not @@ -1576,8 +1985,8 @@ type File struct { HasThumbnail bool `json:"hasThumbnail,omitempty"` // HeadRevisionId: The ID of the file's head revision. This field is - // only populated for files with content stored in Drive; it is not - // populated for Google Docs or shortcut files. + // only populated for files with content stored in Google Drive; it is + // not populated for Google Docs or shortcut files. HeadRevisionId string `json:"headRevisionId,omitempty"` // IconLink: A link to the file's icon. @@ -1619,8 +2028,8 @@ type File struct { MarkedViewedByMeDate string `json:"markedViewedByMeDate,omitempty"` // Md5Checksum: An MD5 checksum for the content of this file. This field - // is only populated for files with content stored in Drive; it is not - // populated for Google Docs or shortcut files. + // is only populated for files with content stored in Google Drive; it + // is not populated for Google Docs or shortcut files. Md5Checksum string `json:"md5Checksum,omitempty"` // MimeType: The MIME type of the file. This is only mutable on update @@ -1645,19 +2054,19 @@ type File struct { // OriginalFilename: The original filename of the uploaded content if // available, or else the original value of the title field. This is - // only available for files with binary content in Drive. + // only available for files with binary content in Google Drive. OriginalFilename string `json:"originalFilename,omitempty"` // OwnedByMe: Whether the file is owned by the current user. Not - // populated for Team Drive files. + // populated for items in shared drives. OwnedByMe bool `json:"ownedByMe,omitempty"` // OwnerNames: Name(s) of the owner(s) of this file. Not populated for - // Team Drive files. + // items in shared drives. OwnerNames []string `json:"ownerNames,omitempty"` - // Owners: The owner(s) of this file. Not populated for Team Drive - // files. + // Owners: The owner(s) of this file. Not populated for items in shared + // drives. Owners []*User `json:"owners,omitempty"` // Parents: Collection of parent folders which contain this file. @@ -1673,7 +2082,7 @@ type File struct { PermissionIds []string `json:"permissionIds,omitempty"` // Permissions: The list of permissions for users with access to this - // file. Not populated for Team Drive files. + // file. Not populated for items in shared drives. Permissions []*Permission `json:"permissions,omitempty"` // Properties: The list of properties. @@ -1688,8 +2097,8 @@ type File struct { // Shareable: Deprecated: use capabilities/canShare. Shareable bool `json:"shareable,omitempty"` - // Shared: Whether the file has been shared. Not populated for Team - // Drive files. + // Shared: Whether the file has been shared. Not populated for items in + // shared drives. Shared bool `json:"shared,omitempty"` // SharedWithMeDate: Time at which this file was shared with the user @@ -1704,11 +2113,11 @@ type File struct { // are 'drive', 'appDataFolder' and 'photos'. Spaces []string `json:"spaces,omitempty"` - // TeamDriveId: ID of the Team Drive the file resides in. + // TeamDriveId: Deprecated - use driveId instead. TeamDriveId string `json:"teamDriveId,omitempty"` - // Thumbnail: A thumbnail for the file. This will only be used if Drive - // cannot generate a standard thumbnail. + // Thumbnail: A thumbnail for the file. This will only be used if a + // standard thumbnail cannot be generated. Thumbnail *FileThumbnail `json:"thumbnail,omitempty"` // ThumbnailLink: A short-lived link to the file's thumbnail. Typically @@ -1721,16 +2130,16 @@ type File struct { ThumbnailVersion int64 `json:"thumbnailVersion,omitempty,string"` // Title: The title of this file. Note that for immutable items such as - // the top level folders of Team Drives, My Drive root folder, and + // the top level folders of shared drives, My Drive root folder, and // Application Data folder the title is constant. Title string `json:"title,omitempty"` // TrashedDate: The time that the item was trashed (formatted RFC 3339 - // timestamp). Only populated for Team Drive files. + // timestamp). Only populated for items in shared drives. TrashedDate string `json:"trashedDate,omitempty"` // TrashingUser: If the file has been explicitly trashed, the user who - // trashed it. Only populated for Team Drive files. + // trashed it. Only populated for items in shared drives. TrashingUser *User `json:"trashingUser,omitempty"` // UserPermission: The permissions for the authenticated user on this @@ -1758,7 +2167,7 @@ type File struct { WebViewLink string `json:"webViewLink,omitempty"` // WritersCanShare: Whether writers can share the document with other - // users. Not populated for Team Drive files. + // users. Not populated for items in shared drives. WritersCanShare bool `json:"writersCanShare,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -1806,9 +2215,9 @@ type FileCapabilities struct { // CanComment: Whether the current user can comment on this file. CanComment bool `json:"canComment,omitempty"` - // CanCopy: Whether the current user can copy this file. For a Team - // Drive item, whether the current user can copy non-folder descendants - // of this item, or this item itself if it is not a folder. + // CanCopy: Whether the current user can copy this file. For an item in + // a shared drive, whether the current user can copy non-folder + // descendants of this item, or this item itself if it is not a folder. CanCopy bool `json:"canCopy,omitempty"` // CanDelete: Whether the current user can delete this file. @@ -1816,7 +2225,7 @@ type FileCapabilities struct { // CanDeleteChildren: Whether the current user can delete children of // this folder. This is false when the item is not a folder. Only - // populated for Team Drive items. + // populated for items in shared drives. CanDeleteChildren bool `json:"canDeleteChildren,omitempty"` // CanDownload: Whether the current user can download this file. @@ -1829,51 +2238,69 @@ type FileCapabilities struct { // this folder. This is always false when the item is not a folder. CanListChildren bool `json:"canListChildren,omitempty"` - // CanMoveChildrenOutOfTeamDrive: Whether the current user can move - // children of this folder outside of the Team Drive. This is false when - // the item is not a folder. Only populated for Team Drive items. + // CanMoveChildrenOutOfDrive: Whether the current user can move children + // of this folder outside of the shared drive. This is false when the + // item is not a folder. Only populated for items in shared drives. + CanMoveChildrenOutOfDrive bool `json:"canMoveChildrenOutOfDrive,omitempty"` + + // CanMoveChildrenOutOfTeamDrive: Deprecated - use + // canMoveChildrenOutOfDrive instead. CanMoveChildrenOutOfTeamDrive bool `json:"canMoveChildrenOutOfTeamDrive,omitempty"` - // CanMoveChildrenWithinTeamDrive: Whether the current user can move - // children of this folder within the Team Drive. This is false when the - // item is not a folder. Only populated for Team Drive items. + // CanMoveChildrenWithinDrive: Whether the current user can move + // children of this folder within the shared drive. This is false when + // the item is not a folder. Only populated for items in shared drives. + CanMoveChildrenWithinDrive bool `json:"canMoveChildrenWithinDrive,omitempty"` + + // CanMoveChildrenWithinTeamDrive: Deprecated - use + // canMoveChildrenWithinDrive instead. CanMoveChildrenWithinTeamDrive bool `json:"canMoveChildrenWithinTeamDrive,omitempty"` - // CanMoveItemIntoTeamDrive: Whether the current user can move this item - // into a Team Drive. If the item is in a Team Drive, this field is - // equivalent to canMoveTeamDriveItem. + // CanMoveItemIntoTeamDrive: Deprecated - use canMoveItemOutOfDrive + // instead. CanMoveItemIntoTeamDrive bool `json:"canMoveItemIntoTeamDrive,omitempty"` - // CanMoveItemOutOfTeamDrive: Whether the current user can move this - // Team Drive item outside of this Team Drive by changing its parent. - // Note that a request to change the parent of the item may still fail - // depending on the new parent that is being added. Only populated for - // Team Drive items. + // CanMoveItemOutOfDrive: Whether the current user can move this item + // outside of this drive by changing its parent. Note that a request to + // change the parent of the item may still fail depending on the new + // parent that is being added. + CanMoveItemOutOfDrive bool `json:"canMoveItemOutOfDrive,omitempty"` + + // CanMoveItemOutOfTeamDrive: Deprecated - use canMoveItemOutOfDrive + // instead. CanMoveItemOutOfTeamDrive bool `json:"canMoveItemOutOfTeamDrive,omitempty"` - // CanMoveItemWithinTeamDrive: Whether the current user can move this - // Team Drive item within this Team Drive. Note that a request to change - // the parent of the item may still fail depending on the new parent - // that is being added. Only populated for Team Drive items. + // CanMoveItemWithinDrive: Whether the current user can move this item + // within this shared drive. Note that a request to change the parent of + // the item may still fail depending on the new parent that is being + // added. Only populated for items in shared drives. + CanMoveItemWithinDrive bool `json:"canMoveItemWithinDrive,omitempty"` + + // CanMoveItemWithinTeamDrive: Deprecated - use canMoveItemWithinDrive + // instead. CanMoveItemWithinTeamDrive bool `json:"canMoveItemWithinTeamDrive,omitempty"` - // CanMoveTeamDriveItem: Deprecated - use canMoveItemWithinTeamDrive or - // canMoveItemOutOfTeamDrive instead. + // CanMoveTeamDriveItem: Deprecated - use canMoveItemWithinDrive or + // canMoveItemOutOfDrive instead. CanMoveTeamDriveItem bool `json:"canMoveTeamDriveItem,omitempty"` + // CanReadDrive: Whether the current user can read the shared drive to + // which this file belongs. Only populated for items in shared drives. + CanReadDrive bool `json:"canReadDrive,omitempty"` + // CanReadRevisions: Whether the current user can read the revisions - // resource of this file. For a Team Drive item, whether revisions of + // resource of this file. For a shared drive item, whether revisions of // non-folder descendants of this item, or this item itself if it is not // a folder, can be read. CanReadRevisions bool `json:"canReadRevisions,omitempty"` - // CanReadTeamDrive: Whether the current user can read the Team Drive to - // which this file belongs. Only populated for Team Drive files. + // CanReadTeamDrive: Deprecated - use canReadDrive instead. CanReadTeamDrive bool `json:"canReadTeamDrive,omitempty"` // CanRemoveChildren: Whether the current user can remove children from // this folder. This is always false when the item is not a folder. For - // Team Drive items, use canDeleteChildren or canTrashChildren instead. + // a folder in a shared drive, use canDeleteChildren or canTrashChildren + // instead. CanRemoveChildren bool `json:"canRemoveChildren,omitempty"` // CanRename: Whether the current user can rename this file. @@ -1888,7 +2315,7 @@ type FileCapabilities struct { // CanTrashChildren: Whether the current user can trash children of this // folder. This is false when the item is not a folder. Only populated - // for Team Drive items. + // for items in shared drives. CanTrashChildren bool `json:"canTrashChildren,omitempty"` // CanUntrash: Whether the current user can restore this file from @@ -2161,8 +2588,8 @@ func (s *FileLabels) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// FileThumbnail: A thumbnail for the file. This will only be used if -// Drive cannot generate a standard thumbnail. +// FileThumbnail: A thumbnail for the file. This will only be used if a +// standard thumbnail cannot be generated. type FileThumbnail struct { // Image: The URL-safe Base64 encoded bytes of the thumbnail image. It // should conform to RFC 4648 section 5. @@ -2237,11 +2664,10 @@ type FileList struct { // IncompleteSearch: Whether the search process was incomplete. If true, // then some search results may be missing, since all documents were not - // searched. This may occur when searching multiple Team Drives with the - // "default,allTeamDrives" corpora, but all corpora could not be - // searched. When this happens, it is suggested that clients narrow - // their query by choosing a different corpus such as "default" or - // "teamDrive". + // searched. This may occur when searching multiple drives with the + // "allDrives" corpora, but all corpora could not be searched. When this + // happens, it is suggested that clients narrow their query by choosing + // a different corpus such as "default" or "drive". IncompleteSearch bool `json:"incompleteSearch,omitempty"` // Items: The list of files. If nextPageToken is populated, then this @@ -2465,6 +2891,11 @@ type Permission struct { // Name: The name for this permission. Name string `json:"name,omitempty"` + // PermissionDetails: Details of whether the permissions on this shared + // drive item are inherited or directly on this item. This is an + // output-only field which is present only for shared drive items. + PermissionDetails []*PermissionPermissionDetails `json:"permissionDetails,omitempty"` + // PhotoLink: A link to the profile photo, if available. PhotoLink string `json:"photoLink,omitempty"` @@ -2480,9 +2911,8 @@ type Permission struct { // SelfLink: A link back to this permission. SelfLink string `json:"selfLink,omitempty"` - // TeamDrivePermissionDetails: Details of whether the permissions on - // this Team Drive item are inherited or directly on this item. This is - // an output-only field which is present only for Team Drive items. + // TeamDrivePermissionDetails: Deprecated - use permissionDetails + // instead. TeamDrivePermissionDetails []*PermissionTeamDrivePermissionDetails `json:"teamDrivePermissionDetails,omitempty"` // Type: The account type. Allowed values are: @@ -2530,7 +2960,7 @@ func (s *Permission) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -type PermissionTeamDrivePermissionDetails struct { +type PermissionPermissionDetails struct { // AdditionalRoles: Additional roles for this user. Only commenter is // currently possible, though more may be supported in the future. AdditionalRoles []string `json:"additionalRoles,omitempty"` @@ -2541,9 +2971,15 @@ type PermissionTeamDrivePermissionDetails struct { // InheritedFrom: The ID of the item from which this permission is // inherited. This is an output-only field and is only populated for - // members of the Team Drive. + // members of the shared drive. InheritedFrom string `json:"inheritedFrom,omitempty"` + // PermissionType: The permission type for this user. While new values + // may be added in future, the following are currently possible: + // - file + // - member + PermissionType string `json:"permissionType,omitempty"` + // Role: The primary role for this user. While new values may be added // in the future, the following are currently possible: // - organizer @@ -2552,11 +2988,47 @@ type PermissionTeamDrivePermissionDetails struct { // - reader Role string `json:"role,omitempty"` - // TeamDrivePermissionType: The Team Drive permission type for this - // user. While new values may be added in future, the following are - // currently possible: - // - file - // - member + // ForceSendFields is a list of field names (e.g. "AdditionalRoles") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdditionalRoles") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *PermissionPermissionDetails) MarshalJSON() ([]byte, error) { + type NoMethod PermissionPermissionDetails + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type PermissionTeamDrivePermissionDetails struct { + // AdditionalRoles: Deprecated - use permissionDetails/additionalRoles + // instead. + AdditionalRoles []string `json:"additionalRoles,omitempty"` + + // Inherited: Deprecated - use permissionDetails/inherited instead. + Inherited bool `json:"inherited,omitempty"` + + // InheritedFrom: Deprecated - use permissionDetails/inheritedFrom + // instead. + InheritedFrom string `json:"inheritedFrom,omitempty"` + + // Role: Deprecated - use permissionDetails/role instead. + Role string `json:"role,omitempty"` + + // TeamDrivePermissionType: Deprecated - use + // permissionDetails/permissionType instead. TeamDrivePermissionType string `json:"teamDrivePermissionType,omitempty"` // ForceSendFields is a list of field names (e.g. "AdditionalRoles") to @@ -2946,7 +3418,7 @@ func (s *StartPageToken) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// TeamDrive: Representation of a Team Drive. +// TeamDrive: Deprecated: use the drive collection instead. type TeamDrive struct { // BackgroundImageFile: An image file and cropping parameters from which // a background image for this Team Drive is set. This is a write only @@ -3873,15 +4345,32 @@ func (r *ChangesService) Get(changeId string) *ChangesGetCall { return c } +// DriveId sets the optional parameter "driveId": The shared drive from +// which the change will be returned. +func (c *ChangesGetCall) DriveId(driveId string) *ChangesGetCall { + c.urlParams_.Set("driveId", driveId) + return c +} + +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesGetCall) SupportsAllDrives(supportsAllDrives bool) *ChangesGetCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesGetCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesGetCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The Team Drive -// from which the change will be returned. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesGetCall) TeamDriveId(teamDriveId string) *ChangesGetCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -3998,14 +4487,25 @@ func (c *ChangesGetCall) Do(opts ...googleapi.CallOption) (*Change, error) { // "required": true, // "type": "string" // }, + // "driveId": { + // "description": "The shared drive from which the change will be returned.", + // "location": "query", + // "type": "string" + // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The Team Drive from which the change will be returned.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -4045,16 +4545,33 @@ func (r *ChangesService) GetStartPageToken() *ChangesGetStartPageTokenCall { return c } +// DriveId sets the optional parameter "driveId": The ID of the shared +// drive for which the starting pageToken for listing future changes +// from that shared drive will be returned. +func (c *ChangesGetStartPageTokenCall) DriveId(driveId string) *ChangesGetStartPageTokenCall { + c.urlParams_.Set("driveId", driveId) + return c +} + +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesGetStartPageTokenCall) SupportsAllDrives(supportsAllDrives bool) *ChangesGetStartPageTokenCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesGetStartPageTokenCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesGetStartPageTokenCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The ID of the -// Team Drive for which the starting pageToken for listing future -// changes from that Team Drive will be returned. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesGetStartPageTokenCall) TeamDriveId(teamDriveId string) *ChangesGetStartPageTokenCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -4159,14 +4676,25 @@ func (c *ChangesGetStartPageTokenCall) Do(opts ...googleapi.CallOption) (*StartP // "httpMethod": "GET", // "id": "drive.changes.getStartPageToken", // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", + // "location": "query", + // "type": "string" + // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -4199,12 +4727,21 @@ type ChangesListCall struct { header_ http.Header } -// List: Lists the changes for a user or Team Drive. +// List: Lists the changes for a user or shared drive. func (r *ChangesService) List() *ChangesListCall { c := &ChangesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c } +// DriveId sets the optional parameter "driveId": The shared drive from +// which changes will be returned. If specified the change IDs will be +// reflective of the shared drive; use the combined drive ID and change +// ID as an identifier. +func (c *ChangesListCall) DriveId(driveId string) *ChangesListCall { + c.urlParams_.Set("driveId", driveId) + return c +} + // IncludeCorpusRemovals sets the optional parameter // "includeCorpusRemovals": Whether changes should include the file // resource if the file is still accessible by the user at the time of @@ -4223,6 +4760,16 @@ func (c *ChangesListCall) IncludeDeleted(includeDeleted bool) *ChangesListCall { return c } +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *ChangesListCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *ChangesListCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeSubscribed sets the optional parameter "includeSubscribed": // Whether to include changes outside the My Drive hierarchy in the // result. When set to false, changes to files such as those in the @@ -4234,8 +4781,8 @@ func (c *ChangesListCall) IncludeSubscribed(includeSubscribed bool) *ChangesList } // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive files or changes should -// be included in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *ChangesListCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *ChangesListCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -4272,17 +4819,25 @@ func (c *ChangesListCall) StartChangeId(startChangeId int64) *ChangesListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesListCall) SupportsAllDrives(supportsAllDrives bool) *ChangesListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesListCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The Team Drive -// from which changes will be returned. If specified the change IDs will -// be reflective of the Team Drive; use the combined Team Drive ID and -// change ID as an identifier. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesListCall) TeamDriveId(teamDriveId string) *ChangesListCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -4383,10 +4938,15 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) } return ret, nil // { - // "description": "Lists the changes for a user or Team Drive.", + // "description": "Lists the changes for a user or shared drive.", // "httpMethod": "GET", // "id": "drive.changes.list", // "parameters": { + // "driveId": { + // "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + // "location": "query", + // "type": "string" + // }, // "includeCorpusRemovals": { // "default": "false", // "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", @@ -4399,6 +4959,12 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) // "location": "query", // "type": "boolean" // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeSubscribed": { // "default": "true", // "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", @@ -4407,7 +4973,7 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive files or changes should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -4435,14 +5001,20 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -4504,6 +5076,15 @@ func (r *ChangesService) Watch(channel *Channel) *ChangesWatchCall { return c } +// DriveId sets the optional parameter "driveId": The shared drive from +// which changes will be returned. If specified the change IDs will be +// reflective of the shared drive; use the combined drive ID and change +// ID as an identifier. +func (c *ChangesWatchCall) DriveId(driveId string) *ChangesWatchCall { + c.urlParams_.Set("driveId", driveId) + return c +} + // IncludeCorpusRemovals sets the optional parameter // "includeCorpusRemovals": Whether changes should include the file // resource if the file is still accessible by the user at the time of @@ -4522,6 +5103,16 @@ func (c *ChangesWatchCall) IncludeDeleted(includeDeleted bool) *ChangesWatchCall return c } +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *ChangesWatchCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *ChangesWatchCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeSubscribed sets the optional parameter "includeSubscribed": // Whether to include changes outside the My Drive hierarchy in the // result. When set to false, changes to files such as those in the @@ -4533,8 +5124,8 @@ func (c *ChangesWatchCall) IncludeSubscribed(includeSubscribed bool) *ChangesWat } // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive files or changes should -// be included in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *ChangesWatchCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *ChangesWatchCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -4571,17 +5162,25 @@ func (c *ChangesWatchCall) StartChangeId(startChangeId int64) *ChangesWatchCall return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesWatchCall) SupportsAllDrives(supportsAllDrives bool) *ChangesWatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesWatchCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesWatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The Team Drive -// from which changes will be returned. If specified the change IDs will -// be reflective of the Team Drive; use the combined Team Drive ID and -// change ID as an identifier. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesWatchCall) TeamDriveId(teamDriveId string) *ChangesWatchCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -4678,6 +5277,11 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "httpMethod": "POST", // "id": "drive.changes.watch", // "parameters": { + // "driveId": { + // "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + // "location": "query", + // "type": "string" + // }, // "includeCorpusRemovals": { // "default": "false", // "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", @@ -4690,6 +5294,12 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "location": "query", // "type": "boolean" // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeSubscribed": { // "default": "true", // "description": "Whether to include changes outside the My Drive hierarchy in the result. When set to false, changes to files such as those in the Application Data folder or shared files which have not been added to My Drive will be omitted from the result.", @@ -4698,7 +5308,7 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive files or changes should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -4726,14 +5336,20 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -5148,8 +5764,18 @@ func (r *ChildrenService) Insert(folderId string, childreference *ChildReference return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChildrenInsertCall) SupportsAllDrives(supportsAllDrives bool) *ChildrenInsertCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChildrenInsertCall) SupportsTeamDrives(supportsTeamDrives bool) *ChildrenInsertCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -5258,9 +5884,15 @@ func (c *ChildrenInsertCall) Do(opts ...googleapi.CallOption) (*ChildReference, // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -6440,6 +7072,1006 @@ func (c *CommentsUpdateCall) Do(opts ...googleapi.CallOption) (*Comment, error) } +// method id "drive.drives.delete": + +type DrivesDeleteCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Permanently deletes a shared drive for which the user is an +// organizer. The shared drive cannot contain any untrashed items. +func (r *DrivesService) Delete(driveId string) *DrivesDeleteCall { + c := &DrivesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesDeleteCall) Fields(s ...googleapi.Field) *DrivesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesDeleteCall) Context(ctx context.Context) *DrivesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.delete" call. +func (c *DrivesDeleteCall) Do(opts ...googleapi.CallOption) error { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if err != nil { + return err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return err + } + return nil + // { + // "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + // "httpMethod": "DELETE", + // "id": "drive.drives.delete", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}", + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.get": + +type DrivesGetCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a shared drive's metadata by ID. +func (r *DrivesService) Get(driveId string) *DrivesGetCall { + c := &DrivesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then the requester will be granted access if they are +// an administrator of the domain to which the shared drive belongs. +func (c *DrivesGetCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesGetCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesGetCall) Fields(s ...googleapi.Field) *DrivesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *DrivesGetCall) IfNoneMatch(entityTag string) *DrivesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesGetCall) Context(ctx context.Context) *DrivesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.get" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesGetCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a shared drive's metadata by ID.", + // "httpMethod": "GET", + // "id": "drive.drives.get", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives/{driveId}", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive", + // "https://www.googleapis.com/auth/drive.readonly" + // ] + // } + +} + +// method id "drive.drives.hide": + +type DrivesHideCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Hide: Hides a shared drive from the default view. +func (r *DrivesService) Hide(driveId string) *DrivesHideCall { + c := &DrivesHideCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesHideCall) Fields(s ...googleapi.Field) *DrivesHideCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesHideCall) Context(ctx context.Context) *DrivesHideCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesHideCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesHideCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}/hide") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.hide" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesHideCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Hides a shared drive from the default view.", + // "httpMethod": "POST", + // "id": "drive.drives.hide", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}/hide", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.insert": + +type DrivesInsertCall struct { + s *Service + drive *Drive + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new shared drive. +func (r *DrivesService) Insert(requestId string, drive *Drive) *DrivesInsertCall { + c := &DrivesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.urlParams_.Set("requestId", requestId) + c.drive = drive + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesInsertCall) Fields(s ...googleapi.Field) *DrivesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesInsertCall) Context(ctx context.Context) *DrivesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.drive) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.insert" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesInsertCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new shared drive.", + // "httpMethod": "POST", + // "id": "drive.drives.insert", + // "parameterOrder": [ + // "requestId" + // ], + // "parameters": { + // "requestId": { + // "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + // "location": "query", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives", + // "request": { + // "$ref": "Drive" + // }, + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.list": + +type DrivesListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the user's shared drives. +func (r *DrivesService) List() *DrivesListCall { + c := &DrivesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// MaxResults sets the optional parameter "maxResults": Maximum number +// of shared drives to return. +func (c *DrivesListCall) MaxResults(maxResults int64) *DrivesListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token for +// shared drives. +func (c *DrivesListCall) PageToken(pageToken string) *DrivesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Q sets the optional parameter "q": Query string for searching shared +// drives. +func (c *DrivesListCall) Q(q string) *DrivesListCall { + c.urlParams_.Set("q", q) + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then all shared drives of the domain in which the +// requester is an administrator are returned. +func (c *DrivesListCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesListCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesListCall) Fields(s ...googleapi.Field) *DrivesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *DrivesListCall) IfNoneMatch(entityTag string) *DrivesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesListCall) Context(ctx context.Context) *DrivesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.list" call. +// Exactly one of *DriveList or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *DriveList.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *DrivesListCall) Do(opts ...googleapi.CallOption) (*DriveList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &DriveList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists the user's shared drives.", + // "httpMethod": "GET", + // "id": "drive.drives.list", + // "parameters": { + // "maxResults": { + // "default": "10", + // "description": "Maximum number of shared drives to return.", + // "format": "int32", + // "location": "query", + // "maximum": "100", + // "minimum": "1", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token for shared drives.", + // "location": "query", + // "type": "string" + // }, + // "q": { + // "description": "Query string for searching shared drives.", + // "location": "query", + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives", + // "response": { + // "$ref": "DriveList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive", + // "https://www.googleapis.com/auth/drive.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *DrivesListCall) Pages(ctx context.Context, f func(*DriveList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "drive.drives.unhide": + +type DrivesUnhideCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Unhide: Restores a shared drive to the default view. +func (r *DrivesService) Unhide(driveId string) *DrivesUnhideCall { + c := &DrivesUnhideCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesUnhideCall) Fields(s ...googleapi.Field) *DrivesUnhideCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesUnhideCall) Context(ctx context.Context) *DrivesUnhideCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesUnhideCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesUnhideCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}/unhide") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.unhide" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesUnhideCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Restores a shared drive to the default view.", + // "httpMethod": "POST", + // "id": "drive.drives.unhide", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}/unhide", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.update": + +type DrivesUpdateCall struct { + s *Service + driveId string + drive *Drive + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the metadata for a shared drive. +func (r *DrivesService) Update(driveId string, drive *Drive) *DrivesUpdateCall { + c := &DrivesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + c.drive = drive + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then the requester will be granted access if they are +// an administrator of the domain to which the shared drive belongs. +func (c *DrivesUpdateCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesUpdateCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesUpdateCall) Fields(s ...googleapi.Field) *DrivesUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesUpdateCall) Context(ctx context.Context) *DrivesUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.drive) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PUT", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.update" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesUpdateCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates the metadata for a shared drive.", + // "httpMethod": "PUT", + // "id": "drive.drives.update", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives/{driveId}", + // "request": { + // "$ref": "Drive" + // }, + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + // method id "drive.files.copy": type FilesCopyCall struct { @@ -6488,8 +8120,18 @@ func (c *FilesCopyCall) Pinned(pinned bool) *FilesCopyCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesCopyCall) SupportsAllDrives(supportsAllDrives bool) *FilesCopyCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesCopyCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesCopyCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6648,9 +8290,15 @@ func (c *FilesCopyCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -6709,15 +8357,25 @@ type FilesDeleteCall struct { // Delete: Permanently deletes a file by ID. Skips the trash. The // currently authenticated user must own the file or be an organizer on -// the parent for Team Drive files. +// the parent for shared drive files. func (r *FilesService) Delete(fileId string) *FilesDeleteCall { c := &FilesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesDeleteCall) SupportsAllDrives(supportsAllDrives bool) *FilesDeleteCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesDeleteCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6783,7 +8441,7 @@ func (c *FilesDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for Team Drive files.", + // "description": "Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for shared drive files.", // "httpMethod": "DELETE", // "id": "drive.files.delete", // "parameterOrder": [ @@ -6796,9 +8454,15 @@ func (c *FilesDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -7243,8 +8907,18 @@ func (c *FilesGetCall) RevisionId(revisionId string) *FilesGetCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesGetCall) SupportsAllDrives(supportsAllDrives bool) *FilesGetCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesGetCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesGetCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -7409,9 +9083,15 @@ func (c *FilesGetCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -7489,8 +9169,18 @@ func (c *FilesInsertCall) Pinned(pinned bool) *FilesInsertCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesInsertCall) SupportsAllDrives(supportsAllDrives bool) *FilesInsertCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesInsertCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesInsertCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -7727,9 +9417,15 @@ func (c *FilesInsertCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -7799,12 +9495,10 @@ func (r *FilesService) List() *FilesListCall { return c } -// Corpora sets the optional parameter "corpora": Comma-separated list -// of bodies of items (files/documents) to which the query applies. -// Supported bodies are 'default', 'domain', 'teamDrive' and -// 'allTeamDrives'. 'allTeamDrives' must be combined with 'default'; all -// other values must be used in isolation. Prefer 'default' or -// 'teamDrive' to 'allTeamDrives' for efficiency. +// Corpora sets the optional parameter "corpora": Bodies of items +// (files/documents) to which the query applies. Supported bodies are +// 'default', 'domain', 'drive' and 'allDrives'. Prefer 'default' or +// 'drive' to 'allDrives' for efficiency. func (c *FilesListCall) Corpora(corpora string) *FilesListCall { c.urlParams_.Set("corpora", corpora) return c @@ -7822,9 +9516,26 @@ func (c *FilesListCall) Corpus(corpus string) *FilesListCall { return c } +// DriveId sets the optional parameter "driveId": ID of the shared drive +// to search. +func (c *FilesListCall) DriveId(driveId string) *FilesListCall { + c.urlParams_.Set("driveId", driveId) + return c +} + +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *FilesListCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *FilesListCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive items should be included -// in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *FilesListCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *FilesListCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -7884,15 +9595,25 @@ func (c *FilesListCall) Spaces(spaces string) *FilesListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesListCall) SupportsAllDrives(supportsAllDrives bool) *FilesListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesListCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": ID of Team -// Drive to search. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *FilesListCall) TeamDriveId(teamDriveId string) *FilesListCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -7998,7 +9719,7 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "id": "drive.files.list", // "parameters": { // "corpora": { - // "description": "Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'default'; all other values must be used in isolation. Prefer 'default' or 'teamDrive' to 'allTeamDrives' for efficiency.", + // "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are 'default', 'domain', 'drive' and 'allDrives'. Prefer 'default' or 'drive' to 'allDrives' for efficiency.", // "location": "query", // "type": "string" // }, @@ -8015,9 +9736,20 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "location": "query", // "type": "string" // }, + // "driveId": { + // "description": "ID of the shared drive to search.", + // "location": "query", + // "type": "string" + // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive items should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -8062,14 +9794,20 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "ID of Team Drive to search.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -8219,8 +9957,18 @@ func (c *FilesPatchCall) SetModifiedDate(setModifiedDate bool) *FilesPatchCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesPatchCall) SupportsAllDrives(supportsAllDrives bool) *FilesPatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesPatchCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesPatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -8424,9 +10172,15 @@ func (c *FilesPatchCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -8489,8 +10243,18 @@ func (r *FilesService) Touch(fileId string) *FilesTouchCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesTouchCall) SupportsAllDrives(supportsAllDrives bool) *FilesTouchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesTouchCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesTouchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -8594,9 +10358,15 @@ func (c *FilesTouchCall) Do(opts ...googleapi.CallOption) (*File, error) { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -8628,15 +10398,25 @@ type FilesTrashCall struct { // Trash: Moves a file to the trash. The currently authenticated user // must own the file or be at least a fileOrganizer on the parent for -// Team Drive files. +// shared drive files. func (r *FilesService) Trash(fileId string) *FilesTrashCall { c := &FilesTrashCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesTrashCall) SupportsAllDrives(supportsAllDrives bool) *FilesTrashCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesTrashCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesTrashCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -8727,7 +10507,7 @@ func (c *FilesTrashCall) Do(opts ...googleapi.CallOption) (*File, error) { } return ret, nil // { - // "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for Team Drive files.", + // "description": "Moves a file to the trash. The currently authenticated user must own the file or be at least a fileOrganizer on the parent for shared drive files.", // "httpMethod": "POST", // "id": "drive.files.trash", // "parameterOrder": [ @@ -8740,9 +10520,15 @@ func (c *FilesTrashCall) Do(opts ...googleapi.CallOption) (*File, error) { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -8778,8 +10564,18 @@ func (r *FilesService) Untrash(fileId string) *FilesUntrashCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesUntrashCall) SupportsAllDrives(supportsAllDrives bool) *FilesUntrashCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesUntrashCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesUntrashCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -8883,9 +10679,15 @@ func (c *FilesUntrashCall) Do(opts ...googleapi.CallOption) (*File, error) { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -9010,8 +10812,18 @@ func (c *FilesUpdateCall) SetModifiedDate(setModifiedDate bool) *FilesUpdateCall return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesUpdateCall) SupportsAllDrives(supportsAllDrives bool) *FilesUpdateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesUpdateCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesUpdateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -9298,9 +11110,15 @@ func (c *FilesUpdateCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -9393,8 +11211,18 @@ func (c *FilesWatchCall) RevisionId(revisionId string) *FilesWatchCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesWatchCall) SupportsAllDrives(supportsAllDrives bool) *FilesWatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesWatchCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesWatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -9551,9 +11379,15 @@ func (c *FilesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -9874,8 +11708,18 @@ func (r *ParentsService) Insert(fileId string, parentreference *ParentReference) return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ParentsInsertCall) SupportsAllDrives(supportsAllDrives bool) *ParentsInsertCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ParentsInsertCall) SupportsTeamDrives(supportsTeamDrives bool) *ParentsInsertCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -9984,9 +11828,15 @@ func (c *ParentsInsertCall) Do(opts ...googleapi.CallOption) (*ParentReference, // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -10165,7 +12015,7 @@ type PermissionsDeleteCall struct { header_ http.Header } -// Delete: Deletes a permission from a file or Team Drive. +// Delete: Deletes a permission from a file or shared drive. func (r *PermissionsService) Delete(fileId string, permissionId string) *PermissionsDeleteCall { c := &PermissionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -10173,8 +12023,18 @@ func (r *PermissionsService) Delete(fileId string, permissionId string) *Permiss return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsDeleteCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsDeleteCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsDeleteCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -10182,8 +12042,9 @@ func (c *PermissionsDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *Per // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsDeleteCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsDeleteCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -10250,7 +12111,7 @@ func (c *PermissionsDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Deletes a permission from a file or Team Drive.", + // "description": "Deletes a permission from a file or shared drive.", // "httpMethod": "DELETE", // "id": "drive.permissions.delete", // "parameterOrder": [ @@ -10259,7 +12120,7 @@ func (c *PermissionsDeleteCall) Do(opts ...googleapi.CallOption) error { // ], // "parameters": { // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -10270,15 +12131,21 @@ func (c *PermissionsDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -10312,8 +12179,18 @@ func (r *PermissionsService) Get(fileId string, permissionId string) *Permission return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsGetCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsGetCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsGetCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsGetCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -10321,8 +12198,9 @@ func (c *PermissionsGetCall) SupportsTeamDrives(supportsTeamDrives bool) *Permis // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsGetCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsGetCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -10436,7 +12314,7 @@ func (c *PermissionsGetCall) Do(opts ...googleapi.CallOption) (*Permission, erro // ], // "parameters": { // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -10447,15 +12325,21 @@ func (c *PermissionsGetCall) Do(opts ...googleapi.CallOption) (*Permission, erro // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -10635,7 +12519,7 @@ type PermissionsInsertCall struct { header_ http.Header } -// Insert: Inserts a permission for a file or Team Drive. +// Insert: Inserts a permission for a file or shared drive. func (r *PermissionsService) Insert(fileId string, permission *Permission) *PermissionsInsertCall { c := &PermissionsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -10659,8 +12543,18 @@ func (c *PermissionsInsertCall) SendNotificationEmails(sendNotificationEmails bo return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsInsertCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsInsertCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsInsertCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsInsertCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -10668,8 +12562,9 @@ func (c *PermissionsInsertCall) SupportsTeamDrives(supportsTeamDrives bool) *Per // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsInsertCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsInsertCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -10765,7 +12660,7 @@ func (c *PermissionsInsertCall) Do(opts ...googleapi.CallOption) (*Permission, e } return ret, nil // { - // "description": "Inserts a permission for a file or Team Drive.", + // "description": "Inserts a permission for a file or shared drive.", // "httpMethod": "POST", // "id": "drive.permissions.insert", // "parameterOrder": [ @@ -10778,7 +12673,7 @@ func (c *PermissionsInsertCall) Do(opts ...googleapi.CallOption) (*Permission, e // "type": "string" // }, // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -10789,15 +12684,21 @@ func (c *PermissionsInsertCall) Do(opts ...googleapi.CallOption) (*Permission, e // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -10828,7 +12729,7 @@ type PermissionsListCall struct { header_ http.Header } -// List: Lists a file's or Team Drive's permissions. +// List: Lists a file's or shared drive's permissions. func (r *PermissionsService) List(fileId string) *PermissionsListCall { c := &PermissionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -10837,8 +12738,9 @@ func (r *PermissionsService) List(fileId string) *PermissionsListCall { // MaxResults sets the optional parameter "maxResults": The maximum // number of permissions to return per page. When not set for files in a -// Team Drive, at most 100 results will be returned. When not set for -// files that are not in a Team Drive, the entire list will be returned. +// shared drive, at most 100 results will be returned. When not set for +// files that are not in a shared drive, the entire list will be +// returned. func (c *PermissionsListCall) MaxResults(maxResults int64) *PermissionsListCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c @@ -10852,8 +12754,18 @@ func (c *PermissionsListCall) PageToken(pageToken string) *PermissionsListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsListCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsListCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -10861,8 +12773,9 @@ func (c *PermissionsListCall) SupportsTeamDrives(supportsTeamDrives bool) *Permi // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsListCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsListCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -10966,7 +12879,7 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, } return ret, nil // { - // "description": "Lists a file's or Team Drive's permissions.", + // "description": "Lists a file's or shared drive's permissions.", // "httpMethod": "GET", // "id": "drive.permissions.list", // "parameterOrder": [ @@ -10974,13 +12887,13 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, // ], // "parameters": { // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" // }, // "maxResults": { - // "description": "The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.", + // "description": "The maximum number of permissions to return per page. When not set for files in a shared drive, at most 100 results will be returned. When not set for files that are not in a shared drive, the entire list will be returned.", // "format": "int32", // "location": "query", // "maximum": "100", @@ -10992,15 +12905,21 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -11070,8 +12989,18 @@ func (c *PermissionsPatchCall) RemoveExpiration(removeExpiration bool) *Permissi return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsPatchCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsPatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsPatchCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsPatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -11087,8 +13016,9 @@ func (c *PermissionsPatchCall) TransferOwnership(transferOwnership bool) *Permis // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsPatchCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsPatchCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -11194,7 +13124,7 @@ func (c *PermissionsPatchCall) Do(opts ...googleapi.CallOption) (*Permission, er // ], // "parameters": { // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -11211,9 +13141,15 @@ func (c *PermissionsPatchCall) Do(opts ...googleapi.CallOption) (*Permission, er // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -11225,7 +13161,7 @@ func (c *PermissionsPatchCall) Do(opts ...googleapi.CallOption) (*Permission, er // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -11273,8 +13209,18 @@ func (c *PermissionsUpdateCall) RemoveExpiration(removeExpiration bool) *Permiss return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsUpdateCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsUpdateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsUpdateCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsUpdateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -11290,8 +13236,9 @@ func (c *PermissionsUpdateCall) TransferOwnership(transferOwnership bool) *Permi // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsUpdateCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsUpdateCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -11397,7 +13344,7 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // ], // "parameters": { // "fileId": { - // "description": "The ID for the file or Team Drive.", + // "description": "The ID for the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -11414,9 +13361,15 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -11428,7 +13381,7 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -14465,8 +16418,7 @@ type TeamdrivesDeleteCall struct { header_ http.Header } -// Delete: Permanently deletes a Team Drive for which the user is an -// organizer. The Team Drive cannot contain any untrashed items. +// Delete: Deprecated use drives.delete instead. func (r *TeamdrivesService) Delete(teamDriveId string) *TeamdrivesDeleteCall { c := &TeamdrivesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -14533,7 +16485,7 @@ func (c *TeamdrivesDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.", + // "description": "Deprecated use drives.delete instead.", // "httpMethod": "DELETE", // "id": "drive.teamdrives.delete", // "parameterOrder": [ @@ -14566,7 +16518,7 @@ type TeamdrivesGetCall struct { header_ http.Header } -// Get: Gets a Team Drive's metadata by ID. +// Get: Deprecated use drives.get instead. func (r *TeamdrivesService) Get(teamDriveId string) *TeamdrivesGetCall { c := &TeamdrivesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -14680,7 +16632,7 @@ func (c *TeamdrivesGetCall) Do(opts ...googleapi.CallOption) (*TeamDrive, error) } return ret, nil // { - // "description": "Gets a Team Drive's metadata by ID.", + // "description": "Deprecated use drives.get instead.", // "httpMethod": "GET", // "id": "drive.teamdrives.get", // "parameterOrder": [ @@ -14722,7 +16674,7 @@ type TeamdrivesInsertCall struct { header_ http.Header } -// Insert: Creates a new Team Drive. +// Insert: Deprecated use drives.insert instead. func (r *TeamdrivesService) Insert(requestId string, teamdrive *TeamDrive) *TeamdrivesInsertCall { c := &TeamdrivesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.urlParams_.Set("requestId", requestId) @@ -14817,7 +16769,7 @@ func (c *TeamdrivesInsertCall) Do(opts ...googleapi.CallOption) (*TeamDrive, err } return ret, nil // { - // "description": "Creates a new Team Drive.", + // "description": "Deprecated use drives.insert instead.", // "httpMethod": "POST", // "id": "drive.teamdrives.insert", // "parameterOrder": [ @@ -14855,7 +16807,7 @@ type TeamdrivesListCall struct { header_ http.Header } -// List: Lists the user's Team Drives. +// List: Deprecated use drives.list instead. func (r *TeamdrivesService) List() *TeamdrivesListCall { c := &TeamdrivesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c @@ -14986,7 +16938,7 @@ func (c *TeamdrivesListCall) Do(opts ...googleapi.CallOption) (*TeamDriveList, e } return ret, nil // { - // "description": "Lists the user's Team Drives.", + // "description": "Deprecated use drives.list instead.", // "httpMethod": "GET", // "id": "drive.teamdrives.list", // "parameters": { @@ -15060,7 +17012,7 @@ type TeamdrivesUpdateCall struct { header_ http.Header } -// Update: Updates a Team Drive's metadata +// Update: Deprecated use drives.update instead. func (r *TeamdrivesService) Update(teamDriveId string, teamdrive *TeamDrive) *TeamdrivesUpdateCall { c := &TeamdrivesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -15167,7 +17119,7 @@ func (c *TeamdrivesUpdateCall) Do(opts ...googleapi.CallOption) (*TeamDrive, err } return ret, nil // { - // "description": "Updates a Team Drive's metadata", + // "description": "Deprecated use drives.update instead.", // "httpMethod": "PUT", // "id": "drive.teamdrives.update", // "parameterOrder": [ diff --git a/vendor/google.golang.org/api/drive/v3/drive-api.json b/vendor/google.golang.org/api/drive/v3/drive-api.json index e59e16a73..18d1f5de0 100644 --- a/vendor/google.golang.org/api/drive/v3/drive-api.json +++ b/vendor/google.golang.org/api/drive/v3/drive-api.json @@ -35,7 +35,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/AVEoPmuw3qKn1b0N_HIutPHT3IQ\"", + "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/Ny-TVwqAdVT7qdK4m-UVr51SKyw\"", "icons": { "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" @@ -121,14 +121,25 @@ "httpMethod": "GET", "id": "drive.changes.getStartPageToken", "parameters": { + "driveId": { + "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", + "location": "query", + "type": "string" + }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -148,19 +159,30 @@ ] }, "list": { - "description": "Lists the changes for a user or Team Drive.", + "description": "Lists the changes for a user or shared drive.", "httpMethod": "GET", "id": "drive.changes.list", "parameterOrder": [ "pageToken" ], "parameters": { + "driveId": { + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "location": "query", + "type": "string" + }, "includeCorpusRemovals": { "default": "false", "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", "location": "query", "type": "boolean" }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeRemoved": { "default": "true", "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.", @@ -169,7 +191,7 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive files or changes should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -200,14 +222,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -235,12 +263,23 @@ "pageToken" ], "parameters": { + "driveId": { + "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + "location": "query", + "type": "string" + }, "includeCorpusRemovals": { "default": "false", "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", "location": "query", "type": "boolean" }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeRemoved": { "default": "true", "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.", @@ -249,7 +288,7 @@ }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive files or changes should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -280,14 +319,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -517,6 +562,204 @@ } } }, + "drives": { + "methods": { + "create": { + "description": "Creates a new shared drive.", + "httpMethod": "POST", + "id": "drive.drives.create", + "parameterOrder": [ + "requestId" + ], + "parameters": { + "requestId": { + "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + "location": "query", + "required": true, + "type": "string" + } + }, + "path": "drives", + "request": { + "$ref": "Drive" + }, + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "delete": { + "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + "httpMethod": "DELETE", + "id": "drive.drives.delete", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}", + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "get": { + "description": "Gets a shared drive's metadata by ID.", + "httpMethod": "GET", + "id": "drive.drives.get", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives/{driveId}", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly" + ] + }, + "hide": { + "description": "Hides a shared drive from the default view.", + "httpMethod": "POST", + "id": "drive.drives.hide", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}/hide", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "list": { + "description": "Lists the user's shared drives.", + "httpMethod": "GET", + "id": "drive.drives.list", + "parameters": { + "pageSize": { + "default": "10", + "description": "Maximum number of shared drives to return.", + "format": "int32", + "location": "query", + "maximum": "100", + "minimum": "1", + "type": "integer" + }, + "pageToken": { + "description": "Page token for shared drives.", + "location": "query", + "type": "string" + }, + "q": { + "description": "Query string for searching shared drives.", + "location": "query", + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives", + "response": { + "$ref": "DriveList" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.readonly" + ] + }, + "unhide": { + "description": "Restores a shared drive to the default view.", + "httpMethod": "POST", + "id": "drive.drives.unhide", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "drives/{driveId}/unhide", + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + }, + "update": { + "description": "Updates the metadate for a shared drive.", + "httpMethod": "PATCH", + "id": "drive.drives.update", + "parameterOrder": [ + "driveId" + ], + "parameters": { + "driveId": { + "description": "The ID of the shared drive.", + "location": "path", + "required": true, + "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" + } + }, + "path": "drives/{driveId}", + "request": { + "$ref": "Drive" + }, + "response": { + "$ref": "Drive" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive" + ] + } + } + }, "files": { "methods": { "copy": { @@ -541,7 +784,7 @@ }, "keepRevisionForever": { "default": "false", - "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", "location": "query", "type": "boolean" }, @@ -550,9 +793,15 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -600,7 +849,7 @@ }, "keepRevisionForever": { "default": "false", - "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", "location": "query", "type": "boolean" }, @@ -609,9 +858,15 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -638,7 +893,7 @@ "supportsSubscription": true }, "delete": { - "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.", + "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.", "httpMethod": "DELETE", "id": "drive.files.delete", "parameterOrder": [ @@ -651,9 +906,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -755,9 +1016,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -785,7 +1052,7 @@ "id": "drive.files.list", "parameters": { "corpora": { - "description": "Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.", + "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'drive' and 'allDrives'. Prefer 'user' or 'drive' to 'allDrives' for efficiency.", "location": "query", "type": "string" }, @@ -802,9 +1069,20 @@ "location": "query", "type": "string" }, + "driveId": { + "description": "ID of the shared drive to search.", + "location": "query", + "type": "string" + }, + "includeItemsFromAllDrives": { + "default": "false", + "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + "location": "query", + "type": "boolean" + }, "includeTeamDriveItems": { "default": "false", - "description": "Whether Team Drive items should be included in results.", + "description": "Deprecated use includeItemsFromAllDrives instead.", "location": "query", "type": "boolean" }, @@ -838,14 +1116,20 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "teamDriveId": { - "description": "ID of Team Drive to search.", + "description": "Deprecated use driveId instead.", "location": "query", "type": "string" } @@ -901,7 +1185,7 @@ }, "keepRevisionForever": { "default": "false", - "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", "location": "query", "type": "boolean" }, @@ -915,9 +1199,15 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -964,9 +1254,15 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" } @@ -997,7 +1293,7 @@ "permissions": { "methods": { "create": { - "description": "Creates a permission for a file or Team Drive.", + "description": "Creates a permission for a file or shared drive.", "httpMethod": "POST", "id": "drive.permissions.create", "parameterOrder": [ @@ -1010,7 +1306,7 @@ "type": "string" }, "fileId": { - "description": "The ID of the file or Team Drive.", + "description": "The ID of the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1020,9 +1316,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1034,7 +1336,7 @@ }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1061,7 +1363,7 @@ ], "parameters": { "fileId": { - "description": "The ID of the file or Team Drive.", + "description": "The ID of the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1072,15 +1374,21 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1112,15 +1420,21 @@ "required": true, "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1139,7 +1453,7 @@ ] }, "list": { - "description": "Lists a file's or Team Drive's permissions.", + "description": "Lists a file's or shared drive's permissions.", "httpMethod": "GET", "id": "drive.permissions.list", "parameterOrder": [ @@ -1147,13 +1461,13 @@ ], "parameters": { "fileId": { - "description": "The ID of the file or Team Drive.", + "description": "The ID of the file or shared drive.", "location": "path", "required": true, "type": "string" }, "pageSize": { - "description": "The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.", + "description": "The maximum number of permissions to return per page. When not set for files in a shared drive, at most 100 results will be returned. When not set for files that are not in a shared drive, the entire list will be returned.", "format": "int32", "location": "query", "maximum": "100", @@ -1165,15 +1479,21 @@ "location": "query", "type": "string" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1201,7 +1521,7 @@ ], "parameters": { "fileId": { - "description": "The ID of the file or Team Drive.", + "description": "The ID of the file or shared drive.", "location": "path", "required": true, "type": "string" @@ -1218,9 +1538,15 @@ "location": "query", "type": "boolean" }, + "supportsAllDrives": { + "default": "false", + "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + "location": "query", + "type": "boolean" + }, "supportsTeamDrives": { "default": "false", - "description": "Whether the requesting application supports Team Drives.", + "description": "Deprecated use supportsAllDrives instead.", "location": "query", "type": "boolean" }, @@ -1232,7 +1558,7 @@ }, "useDomainAdminAccess": { "default": "false", - "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", "location": "query", "type": "boolean" } @@ -1465,7 +1791,7 @@ "revisions": { "methods": { "delete": { - "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", + "description": "Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", "httpMethod": "DELETE", "id": "drive.revisions.delete", "parameterOrder": [ @@ -1620,7 +1946,7 @@ "teamdrives": { "methods": { "create": { - "description": "Creates a new Team Drive.", + "description": "Deprecated use drives.create instead.", "httpMethod": "POST", "id": "drive.teamdrives.create", "parameterOrder": [ @@ -1646,7 +1972,7 @@ ] }, "delete": { - "description": "Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.", + "description": "Deprecated use drives.delete instead.", "httpMethod": "DELETE", "id": "drive.teamdrives.delete", "parameterOrder": [ @@ -1666,7 +1992,7 @@ ] }, "get": { - "description": "Gets a Team Drive's metadata by ID.", + "description": "Deprecated use drives.get instead.", "httpMethod": "GET", "id": "drive.teamdrives.get", "parameterOrder": [ @@ -1696,7 +2022,7 @@ ] }, "list": { - "description": "Lists the user's Team Drives.", + "description": "Deprecated use drives.list instead.", "httpMethod": "GET", "id": "drive.teamdrives.list", "parameters": { @@ -1736,7 +2062,7 @@ ] }, "update": { - "description": "Updates a Team Drive's metadata", + "description": "Deprecated use drives.update instead", "httpMethod": "PATCH", "id": "drive.teamdrives.update", "parameterOrder": [ @@ -1770,7 +2096,7 @@ } } }, - "revision": "20190311", + "revision": "20190501", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -1781,10 +2107,35 @@ "description": "Whether the user has installed the requesting app.", "type": "boolean" }, - "canCreateTeamDrives": { - "description": "Whether the user can create Team Drives.", + "canCreateDrives": { + "description": "Whether the user can create shared drives.", "type": "boolean" }, + "canCreateTeamDrives": { + "description": "Deprecated - use canCreateDrives instead.", + "type": "boolean" + }, + "driveThemes": { + "description": "A list of themes that are supported for shared drives.", + "items": { + "properties": { + "backgroundImageLink": { + "description": "A link to this theme's background image.", + "type": "string" + }, + "colorRgb": { + "description": "The color of this theme as an RGB hex string.", + "type": "string" + }, + "id": { + "description": "The ID of the theme.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, "exportFormats": { "additionalProperties": { "items": { @@ -1857,19 +2208,19 @@ "type": "object" }, "teamDriveThemes": { - "description": "A list of themes that are supported for Team Drives.", + "description": "Deprecated - use driveThemes instead.", "items": { "properties": { "backgroundImageLink": { - "description": "A link to this Team Drive theme's background image.", + "description": "Deprecated - use driveThemes/backgroundImageLink instead.", "type": "string" }, "colorRgb": { - "description": "The color of this Team Drive theme as an RGB hex string.", + "description": "Deprecated - use driveThemes/colorRgb instead.", "type": "string" }, "id": { - "description": "The ID of the theme.", + "description": "Deprecated - use driveThemes/id instead.", "type": "string" } }, @@ -1885,9 +2236,21 @@ "type": "object" }, "Change": { - "description": "A change to a file or Team Drive.", + "description": "A change to a file or shared drive.", "id": "Change", "properties": { + "changeType": { + "description": "The type of the change. Possible values are file and drive.", + "type": "string" + }, + "drive": { + "$ref": "Drive", + "description": "The updated state of the shared drive. Present if the changeType is drive, the user is still a member of the shared drive, and the shared drive has not been deleted." + }, + "driveId": { + "description": "The ID of the shared drive associated with this change.", + "type": "string" + }, "file": { "$ref": "File", "description": "The updated state of the file. Present if the type is file and the file has not been removed from this list of changes." @@ -1902,15 +2265,15 @@ "type": "string" }, "removed": { - "description": "Whether the file or Team Drive has been removed from this list of changes, for example by deletion or loss of access.", + "description": "Whether the file or shared drive has been removed from this list of changes, for example by deletion or loss of access.", "type": "boolean" }, "teamDrive": { "$ref": "TeamDrive", - "description": "The updated state of the Team Drive. Present if the type is teamDrive, the user is still a member of the Team Drive, and the Team Drive has not been removed." + "description": "Deprecated - use drive instead." }, "teamDriveId": { - "description": "The ID of the Team Drive associated with this change.", + "description": "Deprecated - use driveId instead.", "type": "string" }, "time": { @@ -1919,7 +2282,7 @@ "type": "string" }, "type": { - "description": "The type of the change. Possible values are file and teamDrive.", + "description": "Deprecated - use changeType instead.", "type": "string" } }, @@ -2105,6 +2468,195 @@ }, "type": "object" }, + "Drive": { + "description": "Representation of a shared drive.", + "id": "Drive", + "properties": { + "backgroundImageFile": { + "description": "An image file and cropping parameters from which a background image for this shared drive is set. This is a write only field; it can only be set on drive.drives.update requests that don't set themeId. When specified, all fields of the backgroundImageFile must be set.", + "properties": { + "id": { + "description": "The ID of an image file in Google Drive to use for the background image.", + "type": "string" + }, + "width": { + "description": "The width of the cropped image in the closed range of 0 to 1. This value represents the width of the cropped image divided by the width of the entire image. The height is computed by applying a width to height aspect ratio of 80 to 9. The resulting image must be at least 1280 pixels wide and 144 pixels high.", + "format": "float", + "type": "number" + }, + "xCoordinate": { + "description": "The X coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the horizontal distance from the left side of the entire image to the left side of the cropping area divided by the width of the entire image.", + "format": "float", + "type": "number" + }, + "yCoordinate": { + "description": "The Y coordinate of the upper left corner of the cropping area in the background image. This is a value in the closed range of 0 to 1. This value represents the vertical distance from the top side of the entire image to the top side of the cropping area divided by the height of the entire image.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "backgroundImageLink": { + "description": "A short-lived link to this shared drive's background image.", + "type": "string" + }, + "capabilities": { + "description": "Capabilities the current user has on this shared drive.", + "properties": { + "canAddChildren": { + "description": "Whether the current user can add children to folders in this shared drive.", + "type": "boolean" + }, + "canChangeCopyRequiresWriterPermissionRestriction": { + "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive.", + "type": "boolean" + }, + "canChangeDomainUsersOnlyRestriction": { + "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive.", + "type": "boolean" + }, + "canChangeDriveBackground": { + "description": "Whether the current user can change the background of this shared drive.", + "type": "boolean" + }, + "canChangeDriveMembersOnlyRestriction": { + "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive.", + "type": "boolean" + }, + "canComment": { + "description": "Whether the current user can comment on files in this shared drive.", + "type": "boolean" + }, + "canCopy": { + "description": "Whether the current user can copy files in this shared drive.", + "type": "boolean" + }, + "canDeleteChildren": { + "description": "Whether the current user can delete children from folders in this shared drive.", + "type": "boolean" + }, + "canDeleteDrive": { + "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive.", + "type": "boolean" + }, + "canDownload": { + "description": "Whether the current user can download files in this shared drive.", + "type": "boolean" + }, + "canEdit": { + "description": "Whether the current user can edit files in this shared drive", + "type": "boolean" + }, + "canListChildren": { + "description": "Whether the current user can list the children of folders in this shared drive.", + "type": "boolean" + }, + "canManageMembers": { + "description": "Whether the current user can add members to this shared drive or remove them or change their role.", + "type": "boolean" + }, + "canReadRevisions": { + "description": "Whether the current user can read the revisions resource of files in this shared drive.", + "type": "boolean" + }, + "canRename": { + "description": "Whether the current user can rename files or folders in this shared drive.", + "type": "boolean" + }, + "canRenameDrive": { + "description": "Whether the current user can rename this shared drive.", + "type": "boolean" + }, + "canShare": { + "description": "Whether the current user can share files or folders in this shared drive.", + "type": "boolean" + }, + "canTrashChildren": { + "description": "Whether the current user can trash children from folders in this shared drive.", + "type": "boolean" + } + }, + "type": "object" + }, + "colorRgb": { + "description": "The color of this shared drive as an RGB hex string. It can only be set on a drive.drives.update request that does not set themeId.", + "type": "string" + }, + "createdTime": { + "description": "The time at which the shared drive was created (RFC 3339 date-time).", + "format": "date-time", + "type": "string" + }, + "hidden": { + "description": "Whether the shared drive is hidden from default view.", + "type": "boolean" + }, + "id": { + "description": "The ID of this shared drive which is also the ID of the top level folder of this shared drive.", + "type": "string" + }, + "kind": { + "default": "drive#drive", + "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#drive\".", + "type": "string" + }, + "name": { + "description": "The name of this shared drive.", + "type": "string" + }, + "restrictions": { + "description": "A set of restrictions that apply to this shared drive or items inside this shared drive.", + "properties": { + "adminManagedRestrictions": { + "description": "Whether administrative privileges on this shared drive are required to modify restrictions.", + "type": "boolean" + }, + "copyRequiresWriterPermission": { + "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive.", + "type": "boolean" + }, + "domainUsersOnly": { + "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive.", + "type": "boolean" + }, + "driveMembersOnly": { + "description": "Whether access to items inside this shared drive is restricted to its members.", + "type": "boolean" + } + }, + "type": "object" + }, + "themeId": { + "description": "The ID of the theme from which the background image and color will be set. The set of possible driveThemes can be retrieved from a drive.about.get response. When not specified on a drive.drives.create request, a random theme is chosen from which the background image and color are set. This is a write-only field; it can only be set on requests that don't set colorRgb or backgroundImageFile.", + "type": "string" + } + }, + "type": "object" + }, + "DriveList": { + "description": "A list of shared drives.", + "id": "DriveList", + "properties": { + "drives": { + "description": "The list of shared drives. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.", + "items": { + "$ref": "Drive" + }, + "type": "array" + }, + "kind": { + "default": "drive#driveList", + "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#driveList\".", + "type": "string" + }, + "nextPageToken": { + "description": "The page token for the next page of shared drives. This will be absent if the end of the list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.", + "type": "string" + } + }, + "type": "object" + }, "File": { "description": "The metadata for a file.", "id": "File", @@ -2136,7 +2688,7 @@ "type": "boolean" }, "canCopy": { - "description": "Whether the current user can copy this file. For a Team Drive item, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", + "description": "Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.", "type": "boolean" }, "canDelete": { @@ -2144,7 +2696,7 @@ "type": "boolean" }, "canDeleteChildren": { - "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canDownload": { @@ -2159,40 +2711,60 @@ "description": "Whether the current user can list the children of this folder. This is always false when the item is not a folder.", "type": "boolean" }, + "canMoveChildrenOutOfDrive": { + "description": "Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", + "type": "boolean" + }, "canMoveChildrenOutOfTeamDrive": { - "description": "Whether the current user can move children of this folder outside of the Team Drive. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveChildrenOutOfDrive instead.", + "type": "boolean" + }, + "canMoveChildrenWithinDrive": { + "description": "Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canMoveChildrenWithinTeamDrive": { - "description": "Whether the current user can move children of this folder within the Team Drive. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveChildrenWithinDrive instead.", "type": "boolean" }, "canMoveItemIntoTeamDrive": { - "description": "Whether the current user can move this item into a Team Drive. If the item is in a Team Drive, this field is equivalent to canMoveTeamDriveItem.", + "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canMoveItemOutOfDrive": { + "description": "Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.", "type": "boolean" }, "canMoveItemOutOfTeamDrive": { - "description": "Whether the current user can move this Team Drive item outside of this Team Drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canMoveItemWithinDrive": { + "description": "Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.", "type": "boolean" }, "canMoveItemWithinTeamDrive": { - "description": "Whether the current user can move this Team Drive item within this Team Drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for Team Drive items.", + "description": "Deprecated - use canMoveItemWithinDrive instead.", "type": "boolean" }, "canMoveTeamDriveItem": { - "description": "Deprecated - use canMoveItemWithinTeamDrive or canMoveItemOutOfTeamDrive instead.", + "description": "Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.", + "type": "boolean" + }, + "canReadDrive": { + "description": "Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.", "type": "boolean" }, "canReadRevisions": { - "description": "Whether the current user can read the revisions resource of this file. For a Team Drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", + "description": "Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.", "type": "boolean" }, "canReadTeamDrive": { - "description": "Whether the current user can read the Team Drive to which this file belongs. Only populated for Team Drive files.", + "description": "Deprecated - use canReadDrive instead.", "type": "boolean" }, "canRemoveChildren": { - "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For Team Drive items, use canDeleteChildren or canTrashChildren instead.", + "description": "Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.", "type": "boolean" }, "canRename": { @@ -2208,7 +2780,7 @@ "type": "boolean" }, "canTrashChildren": { - "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for Team Drive items.", + "description": "Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.", "type": "boolean" }, "canUntrash": { @@ -2226,7 +2798,7 @@ "type": "string" }, "thumbnail": { - "description": "A thumbnail for the file. This will only be used if Drive cannot generate a standard thumbnail.", + "description": "A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.", "properties": { "image": { "description": "The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).", @@ -2256,6 +2828,10 @@ "description": "A short description of the file.", "type": "string" }, + "driveId": { + "description": "ID of the shared drive the file resides in. Only populated for items in shared drives.", + "type": "string" + }, "explicitlyTrashed": { "description": "Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.", "type": "boolean" @@ -2269,7 +2845,7 @@ "type": "object" }, "fileExtension": { - "description": "The final component of fullFileExtension. This is only available for files with binary content in Drive.", + "description": "The final component of fullFileExtension. This is only available for files with binary content in Google Drive.", "type": "string" }, "folderColorRgb": { @@ -2277,11 +2853,11 @@ "type": "string" }, "fullFileExtension": { - "description": "The full file extension extracted from the name field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Drive.\nThis is automatically updated when the name field changes, however it is not cleared if the new name does not contain a valid extension.", + "description": "The full file extension extracted from the name field. May contain multiple concatenated extensions, such as \"tar.gz\". This is only available for files with binary content in Google Drive.\nThis is automatically updated when the name field changes, however it is not cleared if the new name does not contain a valid extension.", "type": "string" }, "hasAugmentedPermissions": { - "description": "Whether any users are granted file access directly on this file. This field is only populated for Team Drive files.", + "description": "Whether any users are granted file access directly on this file. This field is only populated for shared drive files.", "type": "boolean" }, "hasThumbnail": { @@ -2289,7 +2865,7 @@ "type": "boolean" }, "headRevisionId": { - "description": "The ID of the file's head revision. This is currently only available for files with binary content in Drive.", + "description": "The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.", "type": "string" }, "iconLink": { @@ -2431,11 +3007,11 @@ "description": "The last user to modify the file." }, "md5Checksum": { - "description": "The MD5 checksum for the content of the file. This is only applicable to files with binary content in Drive.", + "description": "The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.", "type": "string" }, "mimeType": { - "description": "The MIME type of the file.\nDrive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.\nIf a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.", + "description": "The MIME type of the file.\nGoogle Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.\nIf a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.", "type": "string" }, "modifiedByMe": { @@ -2453,19 +3029,19 @@ "type": "string" }, "name": { - "description": "The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of Team Drives, My Drive root folder, and Application Data folder the name is constant.", + "description": "The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.", "type": "string" }, "originalFilename": { - "description": "The original filename of the uploaded content if available, or else the original value of the name field. This is only available for files with binary content in Drive.", + "description": "The original filename of the uploaded content if available, or else the original value of the name field. This is only available for files with binary content in Google Drive.", "type": "string" }, "ownedByMe": { - "description": "Whether the user owns the file. Not populated for Team Drive files.", + "description": "Whether the user owns the file. Not populated for items in shared drives.", "type": "boolean" }, "owners": { - "description": "The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for Team Drive files.", + "description": "The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.", "items": { "$ref": "User" }, @@ -2486,7 +3062,7 @@ "type": "array" }, "permissions": { - "description": "The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for Team Drive files.", + "description": "The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.", "items": { "$ref": "Permission" }, @@ -2505,7 +3081,7 @@ "type": "string" }, "shared": { - "description": "Whether the file has been shared. Not populated for Team Drive files.", + "description": "Whether the file has been shared. Not populated for items in shared drives.", "type": "boolean" }, "sharedWithMeTime": { @@ -2518,7 +3094,7 @@ "description": "The user who shared the file with the requesting user, if applicable." }, "size": { - "description": "The size of the file's content in bytes. This is only applicable to files with binary content in Drive.", + "description": "The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.", "format": "int64", "type": "string" }, @@ -2534,7 +3110,7 @@ "type": "boolean" }, "teamDriveId": { - "description": "ID of the Team Drive the file resides in.", + "description": "Deprecated - use driveId instead.", "type": "string" }, "thumbnailLink": { @@ -2551,13 +3127,13 @@ "type": "boolean" }, "trashedTime": { - "description": "The time that the item was trashed (RFC 3339 date-time). Only populated for Team Drive files.", + "description": "The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.", "format": "date-time", "type": "string" }, "trashingUser": { "$ref": "User", - "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for Team Drive files." + "description": "If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives." }, "version": { "description": "A monotonically increasing version number for the file. This reflects every change made to the file on the server, even those not visible to the user.", @@ -2599,7 +3175,7 @@ "type": "boolean" }, "webContentLink": { - "description": "A link for downloading the content of the file in a browser. This is only available for files with binary content in Drive.", + "description": "A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.", "type": "string" }, "webViewLink": { @@ -2607,7 +3183,7 @@ "type": "string" }, "writersCanShare": { - "description": "Whether users with only writer permission can modify the file's permissions. Not populated for Team Drive files.", + "description": "Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.", "type": "boolean" } }, @@ -2625,7 +3201,7 @@ "type": "array" }, "incompleteSearch": { - "description": "Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple Team Drives with the \"user,allTeamDrives\" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as \"user\" or \"teamDrive\".", + "description": "Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple drives with the \"allDrives\" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as \"user\" or \"drive\".", "type": "boolean" }, "kind": { @@ -2701,6 +3277,31 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"drive#permission\".", "type": "string" }, + "permissionDetails": { + "description": "Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.", + "items": { + "properties": { + "inherited": { + "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "type": "boolean" + }, + "inheritedFrom": { + "description": "The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.", + "type": "string" + }, + "permissionType": { + "description": "The permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "type": "string" + }, + "role": { + "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- commenter \n- reader", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, "photoLink": { "description": "A link to the user's profile photo, if available.", "type": "string" @@ -2715,23 +3316,23 @@ "type": "string" }, "teamDrivePermissionDetails": { - "description": "Details of whether the permissions on this Team Drive item are inherited or directly on this item. This is an output-only field which is present only for Team Drive items.", + "description": "Deprecated - use permissionDetails instead.", "items": { "properties": { "inherited": { - "description": "Whether this permission is inherited. This field is always populated. This is an output-only field.", + "description": "Deprecated - use permissionDetails/inherited instead.", "type": "boolean" }, "inheritedFrom": { - "description": "The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the Team Drive.", + "description": "Deprecated - use permissionDetails/inheritedFrom instead.", "type": "string" }, "role": { - "description": "The primary role for this user. While new values may be added in the future, the following are currently possible: \n- organizer \n- fileOrganizer \n- writer \n- commenter \n- reader", + "description": "Deprecated - use permissionDetails/role instead.", "type": "string" }, "teamDrivePermissionType": { - "description": "The Team Drive permission type for this user. While new values may be added in future, the following are currently possible: \n- file \n- member", + "description": "Deprecated - use permissionDetails/permissionType instead.", "type": "string" } }, @@ -2953,7 +3554,7 @@ "type": "object" }, "TeamDrive": { - "description": "Representation of a Team Drive.", + "description": "Deprecated: use the drive collection instead.", "id": "TeamDrive", "properties": { "backgroundImageFile": { diff --git a/vendor/google.golang.org/api/drive/v3/drive-gen.go b/vendor/google.golang.org/api/drive/v3/drive-gen.go index 941b6e79b..1cf8ad657 100644 --- a/vendor/google.golang.org/api/drive/v3/drive-gen.go +++ b/vendor/google.golang.org/api/drive/v3/drive-gen.go @@ -148,6 +148,7 @@ func New(client *http.Client) (*Service, error) { s.Changes = NewChangesService(s) s.Channels = NewChannelsService(s) s.Comments = NewCommentsService(s) + s.Drives = NewDrivesService(s) s.Files = NewFilesService(s) s.Permissions = NewPermissionsService(s) s.Replies = NewRepliesService(s) @@ -169,6 +170,8 @@ type Service struct { Comments *CommentsService + Drives *DrivesService + Files *FilesService Permissions *PermissionsService @@ -223,6 +226,15 @@ type CommentsService struct { s *Service } +func NewDrivesService(s *Service) *DrivesService { + rs := &DrivesService{s: s} + return rs +} + +type DrivesService struct { + s *Service +} + func NewFilesService(s *Service) *FilesService { rs := &FilesService{s: s} return rs @@ -274,9 +286,15 @@ type About struct { // AppInstalled: Whether the user has installed the requesting app. AppInstalled bool `json:"appInstalled,omitempty"` - // CanCreateTeamDrives: Whether the user can create Team Drives. + // CanCreateDrives: Whether the user can create shared drives. + CanCreateDrives bool `json:"canCreateDrives,omitempty"` + + // CanCreateTeamDrives: Deprecated - use canCreateDrives instead. CanCreateTeamDrives bool `json:"canCreateTeamDrives,omitempty"` + // DriveThemes: A list of themes that are supported for shared drives. + DriveThemes []*AboutDriveThemes `json:"driveThemes,omitempty"` + // ExportFormats: A map of source MIME type to possible targets for all // supported exports. ExportFormats map[string][]string `json:"exportFormats,omitempty"` @@ -303,7 +321,7 @@ type About struct { // are measured in bytes. StorageQuota *AboutStorageQuota `json:"storageQuota,omitempty"` - // TeamDriveThemes: A list of themes that are supported for Team Drives. + // TeamDriveThemes: Deprecated - use driveThemes instead. TeamDriveThemes []*AboutTeamDriveThemes `json:"teamDriveThemes,omitempty"` // User: The authenticated user. @@ -336,6 +354,40 @@ func (s *About) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type AboutDriveThemes struct { + // BackgroundImageLink: A link to this theme's background image. + BackgroundImageLink string `json:"backgroundImageLink,omitempty"` + + // ColorRgb: The color of this theme as an RGB hex string. + ColorRgb string `json:"colorRgb,omitempty"` + + // Id: The ID of the theme. + Id string `json:"id,omitempty"` + + // ForceSendFields is a list of field names (e.g. "BackgroundImageLink") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BackgroundImageLink") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AboutDriveThemes) MarshalJSON() ([]byte, error) { + type NoMethod AboutDriveThemes + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AboutStorageQuota: The user's storage quota limits and usage. All // fields are measured in bytes. type AboutStorageQuota struct { @@ -376,14 +428,14 @@ func (s *AboutStorageQuota) MarshalJSON() ([]byte, error) { } type AboutTeamDriveThemes struct { - // BackgroundImageLink: A link to this Team Drive theme's background - // image. + // BackgroundImageLink: Deprecated - use driveThemes/backgroundImageLink + // instead. BackgroundImageLink string `json:"backgroundImageLink,omitempty"` - // ColorRgb: The color of this Team Drive theme as an RGB hex string. + // ColorRgb: Deprecated - use driveThemes/colorRgb instead. ColorRgb string `json:"colorRgb,omitempty"` - // Id: The ID of the theme. + // Id: Deprecated - use driveThemes/id instead. Id string `json:"id,omitempty"` // ForceSendFields is a list of field names (e.g. "BackgroundImageLink") @@ -410,8 +462,20 @@ func (s *AboutTeamDriveThemes) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Change: A change to a file or Team Drive. +// Change: A change to a file or shared drive. type Change struct { + // ChangeType: The type of the change. Possible values are file and + // drive. + ChangeType string `json:"changeType,omitempty"` + + // Drive: The updated state of the shared drive. Present if the + // changeType is drive, the user is still a member of the shared drive, + // and the shared drive has not been deleted. + Drive *Drive `json:"drive,omitempty"` + + // DriveId: The ID of the shared drive associated with this change. + DriveId string `json:"driveId,omitempty"` + // File: The updated state of the file. Present if the type is file and // the file has not been removed from this list of changes. File *File `json:"file,omitempty"` @@ -423,25 +487,23 @@ type Change struct { // string "drive#change". Kind string `json:"kind,omitempty"` - // Removed: Whether the file or Team Drive has been removed from this + // Removed: Whether the file or shared drive has been removed from this // list of changes, for example by deletion or loss of access. Removed bool `json:"removed,omitempty"` - // TeamDrive: The updated state of the Team Drive. Present if the type - // is teamDrive, the user is still a member of the Team Drive, and the - // Team Drive has not been removed. + // TeamDrive: Deprecated - use drive instead. TeamDrive *TeamDrive `json:"teamDrive,omitempty"` - // TeamDriveId: The ID of the Team Drive associated with this change. + // TeamDriveId: Deprecated - use driveId instead. TeamDriveId string `json:"teamDriveId,omitempty"` // Time: The time of this change (RFC 3339 date-time). Time string `json:"time,omitempty"` - // Type: The type of the change. Possible values are file and teamDrive. + // Type: Deprecated - use changeType instead. Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "File") to + // ForceSendFields is a list of field names (e.g. "ChangeType") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the @@ -449,8 +511,8 @@ type Change struct { // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "File") to include in API - // requests with the JSON null value. By default, fields with empty + // NullFields is a list of field names (e.g. "ChangeType") to include in + // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. @@ -733,6 +795,351 @@ func (s *CommentList) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// Drive: Representation of a shared drive. +type Drive struct { + // BackgroundImageFile: An image file and cropping parameters from which + // a background image for this shared drive is set. This is a write only + // field; it can only be set on drive.drives.update requests that don't + // set themeId. When specified, all fields of the backgroundImageFile + // must be set. + BackgroundImageFile *DriveBackgroundImageFile `json:"backgroundImageFile,omitempty"` + + // BackgroundImageLink: A short-lived link to this shared drive's + // background image. + BackgroundImageLink string `json:"backgroundImageLink,omitempty"` + + // Capabilities: Capabilities the current user has on this shared drive. + Capabilities *DriveCapabilities `json:"capabilities,omitempty"` + + // ColorRgb: The color of this shared drive as an RGB hex string. It can + // only be set on a drive.drives.update request that does not set + // themeId. + ColorRgb string `json:"colorRgb,omitempty"` + + // CreatedTime: The time at which the shared drive was created (RFC 3339 + // date-time). + CreatedTime string `json:"createdTime,omitempty"` + + // Hidden: Whether the shared drive is hidden from default view. + Hidden bool `json:"hidden,omitempty"` + + // Id: The ID of this shared drive which is also the ID of the top level + // folder of this shared drive. + Id string `json:"id,omitempty"` + + // Kind: Identifies what kind of resource this is. Value: the fixed + // string "drive#drive". + Kind string `json:"kind,omitempty"` + + // Name: The name of this shared drive. + Name string `json:"name,omitempty"` + + // Restrictions: A set of restrictions that apply to this shared drive + // or items inside this shared drive. + Restrictions *DriveRestrictions `json:"restrictions,omitempty"` + + // ThemeId: The ID of the theme from which the background image and + // color will be set. The set of possible driveThemes can be retrieved + // from a drive.about.get response. When not specified on a + // drive.drives.create request, a random theme is chosen from which the + // background image and color are set. This is a write-only field; it + // can only be set on requests that don't set colorRgb or + // backgroundImageFile. + ThemeId string `json:"themeId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "BackgroundImageFile") + // to unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BackgroundImageFile") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Drive) MarshalJSON() ([]byte, error) { + type NoMethod Drive + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveBackgroundImageFile: An image file and cropping parameters from +// which a background image for this shared drive is set. This is a +// write only field; it can only be set on drive.drives.update requests +// that don't set themeId. When specified, all fields of the +// backgroundImageFile must be set. +type DriveBackgroundImageFile struct { + // Id: The ID of an image file in Google Drive to use for the background + // image. + Id string `json:"id,omitempty"` + + // Width: The width of the cropped image in the closed range of 0 to 1. + // This value represents the width of the cropped image divided by the + // width of the entire image. The height is computed by applying a width + // to height aspect ratio of 80 to 9. The resulting image must be at + // least 1280 pixels wide and 144 pixels high. + Width float64 `json:"width,omitempty"` + + // XCoordinate: The X coordinate of the upper left corner of the + // cropping area in the background image. This is a value in the closed + // range of 0 to 1. This value represents the horizontal distance from + // the left side of the entire image to the left side of the cropping + // area divided by the width of the entire image. + XCoordinate float64 `json:"xCoordinate,omitempty"` + + // YCoordinate: The Y coordinate of the upper left corner of the + // cropping area in the background image. This is a value in the closed + // range of 0 to 1. This value represents the vertical distance from the + // top side of the entire image to the top side of the cropping area + // divided by the height of the entire image. + YCoordinate float64 `json:"yCoordinate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Id") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Id") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DriveBackgroundImageFile) MarshalJSON() ([]byte, error) { + type NoMethod DriveBackgroundImageFile + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *DriveBackgroundImageFile) UnmarshalJSON(data []byte) error { + type NoMethod DriveBackgroundImageFile + var s1 struct { + Width gensupport.JSONFloat64 `json:"width"` + XCoordinate gensupport.JSONFloat64 `json:"xCoordinate"` + YCoordinate gensupport.JSONFloat64 `json:"yCoordinate"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Width = float64(s1.Width) + s.XCoordinate = float64(s1.XCoordinate) + s.YCoordinate = float64(s1.YCoordinate) + return nil +} + +// DriveCapabilities: Capabilities the current user has on this shared +// drive. +type DriveCapabilities struct { + // CanAddChildren: Whether the current user can add children to folders + // in this shared drive. + CanAddChildren bool `json:"canAddChildren,omitempty"` + + // CanChangeCopyRequiresWriterPermissionRestriction: Whether the current + // user can change the copyRequiresWriterPermission restriction of this + // shared drive. + CanChangeCopyRequiresWriterPermissionRestriction bool `json:"canChangeCopyRequiresWriterPermissionRestriction,omitempty"` + + // CanChangeDomainUsersOnlyRestriction: Whether the current user can + // change the domainUsersOnly restriction of this shared drive. + CanChangeDomainUsersOnlyRestriction bool `json:"canChangeDomainUsersOnlyRestriction,omitempty"` + + // CanChangeDriveBackground: Whether the current user can change the + // background of this shared drive. + CanChangeDriveBackground bool `json:"canChangeDriveBackground,omitempty"` + + // CanChangeDriveMembersOnlyRestriction: Whether the current user can + // change the driveMembersOnly restriction of this shared drive. + CanChangeDriveMembersOnlyRestriction bool `json:"canChangeDriveMembersOnlyRestriction,omitempty"` + + // CanComment: Whether the current user can comment on files in this + // shared drive. + CanComment bool `json:"canComment,omitempty"` + + // CanCopy: Whether the current user can copy files in this shared + // drive. + CanCopy bool `json:"canCopy,omitempty"` + + // CanDeleteChildren: Whether the current user can delete children from + // folders in this shared drive. + CanDeleteChildren bool `json:"canDeleteChildren,omitempty"` + + // CanDeleteDrive: Whether the current user can delete this shared + // drive. Attempting to delete the shared drive may still fail if there + // are untrashed items inside the shared drive. + CanDeleteDrive bool `json:"canDeleteDrive,omitempty"` + + // CanDownload: Whether the current user can download files in this + // shared drive. + CanDownload bool `json:"canDownload,omitempty"` + + // CanEdit: Whether the current user can edit files in this shared drive + CanEdit bool `json:"canEdit,omitempty"` + + // CanListChildren: Whether the current user can list the children of + // folders in this shared drive. + CanListChildren bool `json:"canListChildren,omitempty"` + + // CanManageMembers: Whether the current user can add members to this + // shared drive or remove them or change their role. + CanManageMembers bool `json:"canManageMembers,omitempty"` + + // CanReadRevisions: Whether the current user can read the revisions + // resource of files in this shared drive. + CanReadRevisions bool `json:"canReadRevisions,omitempty"` + + // CanRename: Whether the current user can rename files or folders in + // this shared drive. + CanRename bool `json:"canRename,omitempty"` + + // CanRenameDrive: Whether the current user can rename this shared + // drive. + CanRenameDrive bool `json:"canRenameDrive,omitempty"` + + // CanShare: Whether the current user can share files or folders in this + // shared drive. + CanShare bool `json:"canShare,omitempty"` + + // CanTrashChildren: Whether the current user can trash children from + // folders in this shared drive. + CanTrashChildren bool `json:"canTrashChildren,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CanAddChildren") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CanAddChildren") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DriveCapabilities) MarshalJSON() ([]byte, error) { + type NoMethod DriveCapabilities + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveRestrictions: A set of restrictions that apply to this shared +// drive or items inside this shared drive. +type DriveRestrictions struct { + // AdminManagedRestrictions: Whether administrative privileges on this + // shared drive are required to modify restrictions. + AdminManagedRestrictions bool `json:"adminManagedRestrictions,omitempty"` + + // CopyRequiresWriterPermission: Whether the options to copy, print, or + // download files inside this shared drive, should be disabled for + // readers and commenters. When this restriction is set to true, it will + // override the similarly named field to true for any file inside this + // shared drive. + CopyRequiresWriterPermission bool `json:"copyRequiresWriterPermission,omitempty"` + + // DomainUsersOnly: Whether access to this shared drive and items inside + // this shared drive is restricted to users of the domain to which this + // shared drive belongs. This restriction may be overridden by other + // sharing policies controlled outside of this shared drive. + DomainUsersOnly bool `json:"domainUsersOnly,omitempty"` + + // DriveMembersOnly: Whether access to items inside this shared drive is + // restricted to its members. + DriveMembersOnly bool `json:"driveMembersOnly,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AdminManagedRestrictions") to unconditionally include in API + // requests. By default, fields with empty values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdminManagedRestrictions") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DriveRestrictions) MarshalJSON() ([]byte, error) { + type NoMethod DriveRestrictions + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// DriveList: A list of shared drives. +type DriveList struct { + // Drives: The list of shared drives. If nextPageToken is populated, + // then this list may be incomplete and an additional page of results + // should be fetched. + Drives []*Drive `json:"drives,omitempty"` + + // Kind: Identifies what kind of resource this is. Value: the fixed + // string "drive#driveList". + Kind string `json:"kind,omitempty"` + + // NextPageToken: The page token for the next page of shared drives. + // This will be absent if the end of the list has been reached. If the + // token is rejected for any reason, it should be discarded, and + // pagination should be restarted from the first page of results. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Drives") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Drives") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DriveList) MarshalJSON() ([]byte, error) { + type NoMethod DriveList + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // File: The metadata for a file. type File struct { // AppProperties: A collection of arbitrary key-value pairs which are @@ -759,6 +1166,10 @@ type File struct { // Description: A short description of the file. Description string `json:"description,omitempty"` + // DriveId: ID of the shared drive the file resides in. Only populated + // for items in shared drives. + DriveId string `json:"driveId,omitempty"` + // ExplicitlyTrashed: Whether the file has been explicitly trashed, as // opposed to recursively trashed from a parent folder. ExplicitlyTrashed bool `json:"explicitlyTrashed,omitempty"` @@ -767,7 +1178,7 @@ type File struct { ExportLinks map[string]string `json:"exportLinks,omitempty"` // FileExtension: The final component of fullFileExtension. This is only - // available for files with binary content in Drive. + // available for files with binary content in Google Drive. FileExtension string `json:"fileExtension,omitempty"` // FolderColorRgb: The color for a folder as an RGB hex string. The @@ -780,13 +1191,13 @@ type File struct { // FullFileExtension: The full file extension extracted from the name // field. May contain multiple concatenated extensions, such as // "tar.gz". This is only available for files with binary content in - // Drive. + // Google Drive. // This is automatically updated when the name field changes, however it // is not cleared if the new name does not contain a valid extension. FullFileExtension string `json:"fullFileExtension,omitempty"` // HasAugmentedPermissions: Whether any users are granted file access - // directly on this file. This field is only populated for Team Drive + // directly on this file. This field is only populated for shared drive // files. HasAugmentedPermissions bool `json:"hasAugmentedPermissions,omitempty"` @@ -796,7 +1207,7 @@ type File struct { HasThumbnail bool `json:"hasThumbnail,omitempty"` // HeadRevisionId: The ID of the file's head revision. This is currently - // only available for files with binary content in Drive. + // only available for files with binary content in Google Drive. HeadRevisionId string `json:"headRevisionId,omitempty"` // IconLink: A static, unauthenticated link to the file's icon. @@ -821,13 +1232,13 @@ type File struct { LastModifyingUser *User `json:"lastModifyingUser,omitempty"` // Md5Checksum: The MD5 checksum for the content of the file. This is - // only applicable to files with binary content in Drive. + // only applicable to files with binary content in Google Drive. Md5Checksum string `json:"md5Checksum,omitempty"` // MimeType: The MIME type of the file. - // Drive will attempt to automatically detect an appropriate value from - // uploaded content if no value is provided. The value cannot be changed - // unless a new revision is uploaded. + // Google Drive will attempt to automatically detect an appropriate + // value from uploaded content if no value is provided. The value cannot + // be changed unless a new revision is uploaded. // If a file is created with a Google Doc MIME type, the uploaded // content will be imported if possible. The supported import formats // are published in the About resource. @@ -848,21 +1259,22 @@ type File struct { // Name: The name of the file. This is not necessarily unique within a // folder. Note that for immutable items such as the top level folders - // of Team Drives, My Drive root folder, and Application Data folder the - // name is constant. + // of shared drives, My Drive root folder, and Application Data folder + // the name is constant. Name string `json:"name,omitempty"` // OriginalFilename: The original filename of the uploaded content if // available, or else the original value of the name field. This is only - // available for files with binary content in Drive. + // available for files with binary content in Google Drive. OriginalFilename string `json:"originalFilename,omitempty"` - // OwnedByMe: Whether the user owns the file. Not populated for Team - // Drive files. + // OwnedByMe: Whether the user owns the file. Not populated for items in + // shared drives. OwnedByMe bool `json:"ownedByMe,omitempty"` // Owners: The owners of the file. Currently, only certain legacy files - // may have more than one owner. Not populated for Team Drive files. + // may have more than one owner. Not populated for items in shared + // drives. Owners []*User `json:"owners,omitempty"` // Parents: The IDs of the parent folders which contain the file. @@ -879,7 +1291,7 @@ type File struct { // Permissions: The full list of permissions for the file. This is only // available if the requesting user can share the file. Not populated - // for Team Drive files. + // for items in shared drives. Permissions []*Permission `json:"permissions,omitempty"` // Properties: A collection of arbitrary key-value pairs which are @@ -892,8 +1304,8 @@ type File struct { // keepForever enabled. QuotaBytesUsed int64 `json:"quotaBytesUsed,omitempty,string"` - // Shared: Whether the file has been shared. Not populated for Team - // Drive files. + // Shared: Whether the file has been shared. Not populated for items in + // shared drives. Shared bool `json:"shared,omitempty"` // SharedWithMeTime: The time at which the file was shared with the @@ -905,7 +1317,7 @@ type File struct { SharingUser *User `json:"sharingUser,omitempty"` // Size: The size of the file's content in bytes. This is only - // applicable to files with binary content in Drive. + // applicable to files with binary content in Google Drive. Size int64 `json:"size,omitempty,string"` // Spaces: The list of spaces which contain the file. The currently @@ -915,7 +1327,7 @@ type File struct { // Starred: Whether the user has starred the file. Starred bool `json:"starred,omitempty"` - // TeamDriveId: ID of the Team Drive the file resides in. + // TeamDriveId: Deprecated - use driveId instead. TeamDriveId string `json:"teamDriveId,omitempty"` // ThumbnailLink: A short-lived link to the file's thumbnail, if @@ -933,11 +1345,11 @@ type File struct { Trashed bool `json:"trashed,omitempty"` // TrashedTime: The time that the item was trashed (RFC 3339 date-time). - // Only populated for Team Drive files. + // Only populated for items in shared drives. TrashedTime string `json:"trashedTime,omitempty"` // TrashingUser: If the file has been explicitly trashed, the user who - // trashed it. Only populated for Team Drive files. + // trashed it. Only populated for items in shared drives. TrashingUser *User `json:"trashingUser,omitempty"` // Version: A monotonically increasing version number for the file. This @@ -962,7 +1374,7 @@ type File struct { // WebContentLink: A link for downloading the content of the file in a // browser. This is only available for files with binary content in - // Drive. + // Google Drive. WebContentLink string `json:"webContentLink,omitempty"` // WebViewLink: A link for opening the file in a relevant Google editor @@ -970,7 +1382,7 @@ type File struct { WebViewLink string `json:"webViewLink,omitempty"` // WritersCanShare: Whether users with only writer permission can modify - // the file's permissions. Not populated for Team Drive files. + // the file's permissions. Not populated for items in shared drives. WritersCanShare bool `json:"writersCanShare,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -1018,9 +1430,9 @@ type FileCapabilities struct { // CanComment: Whether the current user can comment on this file. CanComment bool `json:"canComment,omitempty"` - // CanCopy: Whether the current user can copy this file. For a Team - // Drive item, whether the current user can copy non-folder descendants - // of this item, or this item itself if it is not a folder. + // CanCopy: Whether the current user can copy this file. For an item in + // a shared drive, whether the current user can copy non-folder + // descendants of this item, or this item itself if it is not a folder. CanCopy bool `json:"canCopy,omitempty"` // CanDelete: Whether the current user can delete this file. @@ -1028,7 +1440,7 @@ type FileCapabilities struct { // CanDeleteChildren: Whether the current user can delete children of // this folder. This is false when the item is not a folder. Only - // populated for Team Drive items. + // populated for items in shared drives. CanDeleteChildren bool `json:"canDeleteChildren,omitempty"` // CanDownload: Whether the current user can download this file. @@ -1041,51 +1453,69 @@ type FileCapabilities struct { // this folder. This is always false when the item is not a folder. CanListChildren bool `json:"canListChildren,omitempty"` - // CanMoveChildrenOutOfTeamDrive: Whether the current user can move - // children of this folder outside of the Team Drive. This is false when - // the item is not a folder. Only populated for Team Drive items. + // CanMoveChildrenOutOfDrive: Whether the current user can move children + // of this folder outside of the shared drive. This is false when the + // item is not a folder. Only populated for items in shared drives. + CanMoveChildrenOutOfDrive bool `json:"canMoveChildrenOutOfDrive,omitempty"` + + // CanMoveChildrenOutOfTeamDrive: Deprecated - use + // canMoveChildrenOutOfDrive instead. CanMoveChildrenOutOfTeamDrive bool `json:"canMoveChildrenOutOfTeamDrive,omitempty"` - // CanMoveChildrenWithinTeamDrive: Whether the current user can move - // children of this folder within the Team Drive. This is false when the - // item is not a folder. Only populated for Team Drive items. + // CanMoveChildrenWithinDrive: Whether the current user can move + // children of this folder within the shared drive. This is false when + // the item is not a folder. Only populated for items in shared drives. + CanMoveChildrenWithinDrive bool `json:"canMoveChildrenWithinDrive,omitempty"` + + // CanMoveChildrenWithinTeamDrive: Deprecated - use + // canMoveChildrenWithinDrive instead. CanMoveChildrenWithinTeamDrive bool `json:"canMoveChildrenWithinTeamDrive,omitempty"` - // CanMoveItemIntoTeamDrive: Whether the current user can move this item - // into a Team Drive. If the item is in a Team Drive, this field is - // equivalent to canMoveTeamDriveItem. + // CanMoveItemIntoTeamDrive: Deprecated - use canMoveItemOutOfDrive + // instead. CanMoveItemIntoTeamDrive bool `json:"canMoveItemIntoTeamDrive,omitempty"` - // CanMoveItemOutOfTeamDrive: Whether the current user can move this - // Team Drive item outside of this Team Drive by changing its parent. - // Note that a request to change the parent of the item may still fail - // depending on the new parent that is being added. Only populated for - // Team Drive items. + // CanMoveItemOutOfDrive: Whether the current user can move this item + // outside of this drive by changing its parent. Note that a request to + // change the parent of the item may still fail depending on the new + // parent that is being added. + CanMoveItemOutOfDrive bool `json:"canMoveItemOutOfDrive,omitempty"` + + // CanMoveItemOutOfTeamDrive: Deprecated - use canMoveItemOutOfDrive + // instead. CanMoveItemOutOfTeamDrive bool `json:"canMoveItemOutOfTeamDrive,omitempty"` - // CanMoveItemWithinTeamDrive: Whether the current user can move this - // Team Drive item within this Team Drive. Note that a request to change - // the parent of the item may still fail depending on the new parent - // that is being added. Only populated for Team Drive items. + // CanMoveItemWithinDrive: Whether the current user can move this item + // within this shared drive. Note that a request to change the parent of + // the item may still fail depending on the new parent that is being + // added. Only populated for items in shared drives. + CanMoveItemWithinDrive bool `json:"canMoveItemWithinDrive,omitempty"` + + // CanMoveItemWithinTeamDrive: Deprecated - use canMoveItemWithinDrive + // instead. CanMoveItemWithinTeamDrive bool `json:"canMoveItemWithinTeamDrive,omitempty"` - // CanMoveTeamDriveItem: Deprecated - use canMoveItemWithinTeamDrive or - // canMoveItemOutOfTeamDrive instead. + // CanMoveTeamDriveItem: Deprecated - use canMoveItemWithinDrive or + // canMoveItemOutOfDrive instead. CanMoveTeamDriveItem bool `json:"canMoveTeamDriveItem,omitempty"` + // CanReadDrive: Whether the current user can read the shared drive to + // which this file belongs. Only populated for items in shared drives. + CanReadDrive bool `json:"canReadDrive,omitempty"` + // CanReadRevisions: Whether the current user can read the revisions - // resource of this file. For a Team Drive item, whether revisions of + // resource of this file. For a shared drive item, whether revisions of // non-folder descendants of this item, or this item itself if it is not // a folder, can be read. CanReadRevisions bool `json:"canReadRevisions,omitempty"` - // CanReadTeamDrive: Whether the current user can read the Team Drive to - // which this file belongs. Only populated for Team Drive files. + // CanReadTeamDrive: Deprecated - use canReadDrive instead. CanReadTeamDrive bool `json:"canReadTeamDrive,omitempty"` // CanRemoveChildren: Whether the current user can remove children from // this folder. This is always false when the item is not a folder. For - // Team Drive items, use canDeleteChildren or canTrashChildren instead. + // a folder in a shared drive, use canDeleteChildren or canTrashChildren + // instead. CanRemoveChildren bool `json:"canRemoveChildren,omitempty"` // CanRename: Whether the current user can rename this file. @@ -1100,7 +1530,7 @@ type FileCapabilities struct { // CanTrashChildren: Whether the current user can trash children of this // folder. This is false when the item is not a folder. Only populated - // for Team Drive items. + // for items in shared drives. CanTrashChildren bool `json:"canTrashChildren,omitempty"` // CanUntrash: Whether the current user can restore this file from @@ -1139,8 +1569,8 @@ type FileContentHints struct { // elements. IndexableText string `json:"indexableText,omitempty"` - // Thumbnail: A thumbnail for the file. This will only be used if Drive - // cannot generate a standard thumbnail. + // Thumbnail: A thumbnail for the file. This will only be used if Google + // Drive cannot generate a standard thumbnail. Thumbnail *FileContentHintsThumbnail `json:"thumbnail,omitempty"` // ForceSendFields is a list of field names (e.g. "IndexableText") to @@ -1167,7 +1597,7 @@ func (s *FileContentHints) MarshalJSON() ([]byte, error) { } // FileContentHintsThumbnail: A thumbnail for the file. This will only -// be used if Drive cannot generate a standard thumbnail. +// be used if Google Drive cannot generate a standard thumbnail. type FileContentHintsThumbnail struct { // Image: The thumbnail data encoded with URL-safe Base64 (RFC 4648 // section 5). @@ -1411,10 +1841,10 @@ type FileList struct { // IncompleteSearch: Whether the search process was incomplete. If true, // then some search results may be missing, since all documents were not - // searched. This may occur when searching multiple Team Drives with the - // "user,allTeamDrives" corpora, but all corpora could not be searched. - // When this happens, it is suggested that clients narrow their query by - // choosing a different corpus such as "user" or "teamDrive". + // searched. This may occur when searching multiple drives with the + // "allDrives" corpora, but all corpora could not be searched. When this + // happens, it is suggested that clients narrow their query by choosing + // a different corpus such as "user" or "drive". IncompleteSearch bool `json:"incompleteSearch,omitempty"` // Kind: Identifies what kind of resource this is. Value: the fixed @@ -1533,6 +1963,11 @@ type Permission struct { // string "drive#permission". Kind string `json:"kind,omitempty"` + // PermissionDetails: Details of whether the permissions on this shared + // drive item are inherited or directly on this item. This is an + // output-only field which is present only for shared drive items. + PermissionDetails []*PermissionPermissionDetails `json:"permissionDetails,omitempty"` + // PhotoLink: A link to the user's profile photo, if available. PhotoLink string `json:"photoLink,omitempty"` @@ -1546,9 +1981,8 @@ type Permission struct { // - reader Role string `json:"role,omitempty"` - // TeamDrivePermissionDetails: Details of whether the permissions on - // this Team Drive item are inherited or directly on this item. This is - // an output-only field which is present only for Team Drive items. + // TeamDrivePermissionDetails: Deprecated - use permissionDetails + // instead. TeamDrivePermissionDetails []*PermissionTeamDrivePermissionDetails `json:"teamDrivePermissionDetails,omitempty"` // Type: The type of the grantee. Valid values are: @@ -1586,16 +2020,22 @@ func (s *Permission) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -type PermissionTeamDrivePermissionDetails struct { +type PermissionPermissionDetails struct { // Inherited: Whether this permission is inherited. This field is always // populated. This is an output-only field. Inherited bool `json:"inherited,omitempty"` // InheritedFrom: The ID of the item from which this permission is // inherited. This is an output-only field and is only populated for - // members of the Team Drive. + // members of the shared drive. InheritedFrom string `json:"inheritedFrom,omitempty"` + // PermissionType: The permission type for this user. While new values + // may be added in future, the following are currently possible: + // - file + // - member + PermissionType string `json:"permissionType,omitempty"` + // Role: The primary role for this user. While new values may be added // in the future, the following are currently possible: // - organizer @@ -1605,11 +2045,42 @@ type PermissionTeamDrivePermissionDetails struct { // - reader Role string `json:"role,omitempty"` - // TeamDrivePermissionType: The Team Drive permission type for this - // user. While new values may be added in future, the following are - // currently possible: - // - file - // - member + // ForceSendFields is a list of field names (e.g. "Inherited") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Inherited") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PermissionPermissionDetails) MarshalJSON() ([]byte, error) { + type NoMethod PermissionPermissionDetails + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type PermissionTeamDrivePermissionDetails struct { + // Inherited: Deprecated - use permissionDetails/inherited instead. + Inherited bool `json:"inherited,omitempty"` + + // InheritedFrom: Deprecated - use permissionDetails/inheritedFrom + // instead. + InheritedFrom string `json:"inheritedFrom,omitempty"` + + // Role: Deprecated - use permissionDetails/role instead. + Role string `json:"role,omitempty"` + + // TeamDrivePermissionType: Deprecated - use + // permissionDetails/permissionType instead. TeamDrivePermissionType string `json:"teamDrivePermissionType,omitempty"` // ForceSendFields is a list of field names (e.g. "Inherited") to @@ -1948,7 +2419,7 @@ func (s *StartPageToken) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// TeamDrive: Representation of a Team Drive. +// TeamDrive: Deprecated: use the drive collection instead. type TeamDrive struct { // BackgroundImageFile: An image file and cropping parameters from which // a background image for this Team Drive is set. This is a write only @@ -2487,16 +2958,33 @@ func (r *ChangesService) GetStartPageToken() *ChangesGetStartPageTokenCall { return c } +// DriveId sets the optional parameter "driveId": The ID of the shared +// drive for which the starting pageToken for listing future changes +// from that shared drive will be returned. +func (c *ChangesGetStartPageTokenCall) DriveId(driveId string) *ChangesGetStartPageTokenCall { + c.urlParams_.Set("driveId", driveId) + return c +} + +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesGetStartPageTokenCall) SupportsAllDrives(supportsAllDrives bool) *ChangesGetStartPageTokenCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesGetStartPageTokenCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesGetStartPageTokenCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The ID of the -// Team Drive for which the starting pageToken for listing future -// changes from that Team Drive will be returned. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesGetStartPageTokenCall) TeamDriveId(teamDriveId string) *ChangesGetStartPageTokenCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -2601,14 +3089,25 @@ func (c *ChangesGetStartPageTokenCall) Do(opts ...googleapi.CallOption) (*StartP // "httpMethod": "GET", // "id": "drive.changes.getStartPageToken", // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive for which the starting pageToken for listing future changes from that shared drive will be returned.", + // "location": "query", + // "type": "string" + // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The ID of the Team Drive for which the starting pageToken for listing future changes from that Team Drive will be returned.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -2640,13 +3139,22 @@ type ChangesListCall struct { header_ http.Header } -// List: Lists the changes for a user or Team Drive. +// List: Lists the changes for a user or shared drive. func (r *ChangesService) List(pageToken string) *ChangesListCall { c := &ChangesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.urlParams_.Set("pageToken", pageToken) return c } +// DriveId sets the optional parameter "driveId": The shared drive from +// which changes will be returned. If specified the change IDs will be +// reflective of the shared drive; use the combined drive ID and change +// ID as an identifier. +func (c *ChangesListCall) DriveId(driveId string) *ChangesListCall { + c.urlParams_.Set("driveId", driveId) + return c +} + // IncludeCorpusRemovals sets the optional parameter // "includeCorpusRemovals": Whether changes should include the file // resource if the file is still accessible by the user at the time of @@ -2657,6 +3165,16 @@ func (c *ChangesListCall) IncludeCorpusRemovals(includeCorpusRemovals bool) *Cha return c } +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *ChangesListCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *ChangesListCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeRemoved sets the optional parameter "includeRemoved": Whether // to include changes indicating that items have been removed from the // list of changes, for example by deletion or loss of access. @@ -2666,8 +3184,8 @@ func (c *ChangesListCall) IncludeRemoved(includeRemoved bool) *ChangesListCall { } // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive files or changes should -// be included in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *ChangesListCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *ChangesListCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -2698,17 +3216,25 @@ func (c *ChangesListCall) Spaces(spaces string) *ChangesListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesListCall) SupportsAllDrives(supportsAllDrives bool) *ChangesListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesListCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The Team Drive -// from which changes will be returned. If specified the change IDs will -// be reflective of the Team Drive; use the combined Team Drive ID and -// change ID as an identifier. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesListCall) TeamDriveId(teamDriveId string) *ChangesListCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -2809,19 +3335,30 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) } return ret, nil // { - // "description": "Lists the changes for a user or Team Drive.", + // "description": "Lists the changes for a user or shared drive.", // "httpMethod": "GET", // "id": "drive.changes.list", // "parameterOrder": [ // "pageToken" // ], // "parameters": { + // "driveId": { + // "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + // "location": "query", + // "type": "string" + // }, // "includeCorpusRemovals": { // "default": "false", // "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", // "location": "query", // "type": "boolean" // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeRemoved": { // "default": "true", // "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.", @@ -2830,7 +3367,7 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive files or changes should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -2861,14 +3398,20 @@ func (c *ChangesListCall) Do(opts ...googleapi.CallOption) (*ChangeList, error) // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -2909,6 +3452,15 @@ func (r *ChangesService) Watch(pageToken string, channel *Channel) *ChangesWatch return c } +// DriveId sets the optional parameter "driveId": The shared drive from +// which changes will be returned. If specified the change IDs will be +// reflective of the shared drive; use the combined drive ID and change +// ID as an identifier. +func (c *ChangesWatchCall) DriveId(driveId string) *ChangesWatchCall { + c.urlParams_.Set("driveId", driveId) + return c +} + // IncludeCorpusRemovals sets the optional parameter // "includeCorpusRemovals": Whether changes should include the file // resource if the file is still accessible by the user at the time of @@ -2919,6 +3471,16 @@ func (c *ChangesWatchCall) IncludeCorpusRemovals(includeCorpusRemovals bool) *Ch return c } +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *ChangesWatchCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *ChangesWatchCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeRemoved sets the optional parameter "includeRemoved": Whether // to include changes indicating that items have been removed from the // list of changes, for example by deletion or loss of access. @@ -2928,8 +3490,8 @@ func (c *ChangesWatchCall) IncludeRemoved(includeRemoved bool) *ChangesWatchCall } // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive files or changes should -// be included in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *ChangesWatchCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *ChangesWatchCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -2960,17 +3522,25 @@ func (c *ChangesWatchCall) Spaces(spaces string) *ChangesWatchCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *ChangesWatchCall) SupportsAllDrives(supportsAllDrives bool) *ChangesWatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *ChangesWatchCall) SupportsTeamDrives(supportsTeamDrives bool) *ChangesWatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": The Team Drive -// from which changes will be returned. If specified the change IDs will -// be reflective of the Team Drive; use the combined Team Drive ID and -// change ID as an identifier. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *ChangesWatchCall) TeamDriveId(teamDriveId string) *ChangesWatchCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -3070,12 +3640,23 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "pageToken" // ], // "parameters": { + // "driveId": { + // "description": "The shared drive from which changes will be returned. If specified the change IDs will be reflective of the shared drive; use the combined drive ID and change ID as an identifier.", + // "location": "query", + // "type": "string" + // }, // "includeCorpusRemovals": { // "default": "false", // "description": "Whether changes should include the file resource if the file is still accessible by the user at the time of the request, even when a file was removed from the list of changes and there will be no further change entries for this file.", // "location": "query", // "type": "boolean" // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeRemoved": { // "default": "true", // "description": "Whether to include changes indicating that items have been removed from the list of changes, for example by deletion or loss of access.", @@ -3084,7 +3665,7 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive files or changes should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -3115,14 +3696,20 @@ func (c *ChangesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "The Team Drive from which changes will be returned. If specified the change IDs will be reflective of the Team Drive; use the combined Team Drive ID and change ID as an identifier.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -4032,6 +4619,1006 @@ func (c *CommentsUpdateCall) Do(opts ...googleapi.CallOption) (*Comment, error) } +// method id "drive.drives.create": + +type DrivesCreateCall struct { + s *Service + drive *Drive + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates a new shared drive. +func (r *DrivesService) Create(requestId string, drive *Drive) *DrivesCreateCall { + c := &DrivesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.urlParams_.Set("requestId", requestId) + c.drive = drive + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesCreateCall) Fields(s ...googleapi.Field) *DrivesCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesCreateCall) Context(ctx context.Context) *DrivesCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.drive) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.create" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesCreateCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new shared drive.", + // "httpMethod": "POST", + // "id": "drive.drives.create", + // "parameterOrder": [ + // "requestId" + // ], + // "parameters": { + // "requestId": { + // "description": "An ID, such as a random UUID, which uniquely identifies this user's request for idempotent creation of a shared drive. A repeated request by the same user and with the same request ID will avoid creating duplicates by attempting to create the same shared drive. If the shared drive already exists a 409 error will be returned.", + // "location": "query", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives", + // "request": { + // "$ref": "Drive" + // }, + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.delete": + +type DrivesDeleteCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Permanently deletes a shared drive for which the user is an +// organizer. The shared drive cannot contain any untrashed items. +func (r *DrivesService) Delete(driveId string) *DrivesDeleteCall { + c := &DrivesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesDeleteCall) Fields(s ...googleapi.Field) *DrivesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesDeleteCall) Context(ctx context.Context) *DrivesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.delete" call. +func (c *DrivesDeleteCall) Do(opts ...googleapi.CallOption) error { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if err != nil { + return err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return err + } + return nil + // { + // "description": "Permanently deletes a shared drive for which the user is an organizer. The shared drive cannot contain any untrashed items.", + // "httpMethod": "DELETE", + // "id": "drive.drives.delete", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}", + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.get": + +type DrivesGetCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a shared drive's metadata by ID. +func (r *DrivesService) Get(driveId string) *DrivesGetCall { + c := &DrivesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then the requester will be granted access if they are +// an administrator of the domain to which the shared drive belongs. +func (c *DrivesGetCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesGetCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesGetCall) Fields(s ...googleapi.Field) *DrivesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *DrivesGetCall) IfNoneMatch(entityTag string) *DrivesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesGetCall) Context(ctx context.Context) *DrivesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.get" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesGetCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a shared drive's metadata by ID.", + // "httpMethod": "GET", + // "id": "drive.drives.get", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives/{driveId}", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive", + // "https://www.googleapis.com/auth/drive.readonly" + // ] + // } + +} + +// method id "drive.drives.hide": + +type DrivesHideCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Hide: Hides a shared drive from the default view. +func (r *DrivesService) Hide(driveId string) *DrivesHideCall { + c := &DrivesHideCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesHideCall) Fields(s ...googleapi.Field) *DrivesHideCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesHideCall) Context(ctx context.Context) *DrivesHideCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesHideCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesHideCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}/hide") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.hide" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesHideCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Hides a shared drive from the default view.", + // "httpMethod": "POST", + // "id": "drive.drives.hide", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}/hide", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.list": + +type DrivesListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the user's shared drives. +func (r *DrivesService) List() *DrivesListCall { + c := &DrivesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// shared drives to return. +func (c *DrivesListCall) PageSize(pageSize int64) *DrivesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token for +// shared drives. +func (c *DrivesListCall) PageToken(pageToken string) *DrivesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Q sets the optional parameter "q": Query string for searching shared +// drives. +func (c *DrivesListCall) Q(q string) *DrivesListCall { + c.urlParams_.Set("q", q) + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then all shared drives of the domain in which the +// requester is an administrator are returned. +func (c *DrivesListCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesListCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesListCall) Fields(s ...googleapi.Field) *DrivesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *DrivesListCall) IfNoneMatch(entityTag string) *DrivesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesListCall) Context(ctx context.Context) *DrivesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.list" call. +// Exactly one of *DriveList or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *DriveList.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *DrivesListCall) Do(opts ...googleapi.CallOption) (*DriveList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &DriveList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists the user's shared drives.", + // "httpMethod": "GET", + // "id": "drive.drives.list", + // "parameters": { + // "pageSize": { + // "default": "10", + // "description": "Maximum number of shared drives to return.", + // "format": "int32", + // "location": "query", + // "maximum": "100", + // "minimum": "1", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token for shared drives.", + // "location": "query", + // "type": "string" + // }, + // "q": { + // "description": "Query string for searching shared drives.", + // "location": "query", + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then all shared drives of the domain in which the requester is an administrator are returned.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives", + // "response": { + // "$ref": "DriveList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive", + // "https://www.googleapis.com/auth/drive.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *DrivesListCall) Pages(ctx context.Context, f func(*DriveList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "drive.drives.unhide": + +type DrivesUnhideCall struct { + s *Service + driveId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Unhide: Restores a shared drive to the default view. +func (r *DrivesService) Unhide(driveId string) *DrivesUnhideCall { + c := &DrivesUnhideCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesUnhideCall) Fields(s ...googleapi.Field) *DrivesUnhideCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesUnhideCall) Context(ctx context.Context) *DrivesUnhideCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesUnhideCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesUnhideCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}/unhide") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.unhide" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesUnhideCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Restores a shared drive to the default view.", + // "httpMethod": "POST", + // "id": "drive.drives.unhide", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // } + // }, + // "path": "drives/{driveId}/unhide", + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + +// method id "drive.drives.update": + +type DrivesUpdateCall struct { + s *Service + driveId string + drive *Drive + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the metadate for a shared drive. +func (r *DrivesService) Update(driveId string, drive *Drive) *DrivesUpdateCall { + c := &DrivesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.driveId = driveId + c.drive = drive + return c +} + +// UseDomainAdminAccess sets the optional parameter +// "useDomainAdminAccess": Issue the request as a domain administrator; +// if set to true, then the requester will be granted access if they are +// an administrator of the domain to which the shared drive belongs. +func (c *DrivesUpdateCall) UseDomainAdminAccess(useDomainAdminAccess bool) *DrivesUpdateCall { + c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *DrivesUpdateCall) Fields(s ...googleapi.Field) *DrivesUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *DrivesUpdateCall) Context(ctx context.Context) *DrivesUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *DrivesUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *DrivesUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.drive) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "drives/{driveId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "driveId": c.driveId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "drive.drives.update" call. +// Exactly one of *Drive or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *Drive.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *DrivesUpdateCall) Do(opts ...googleapi.CallOption) (*Drive, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &Drive{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates the metadate for a shared drive.", + // "httpMethod": "PATCH", + // "id": "drive.drives.update", + // "parameterOrder": [ + // "driveId" + // ], + // "parameters": { + // "driveId": { + // "description": "The ID of the shared drive.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "useDomainAdminAccess": { + // "default": "false", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "drives/{driveId}", + // "request": { + // "$ref": "Drive" + // }, + // "response": { + // "$ref": "Drive" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/drive" + // ] + // } + +} + // method id "drive.files.copy": type FilesCopyCall struct { @@ -4066,7 +5653,7 @@ func (c *FilesCopyCall) IgnoreDefaultVisibility(ignoreDefaultVisibility bool) *F // KeepRevisionForever sets the optional parameter // "keepRevisionForever": Whether to set the 'keepForever' field in the // new head revision. This is only applicable to files with binary -// content in Drive. +// content in Google Drive. func (c *FilesCopyCall) KeepRevisionForever(keepRevisionForever bool) *FilesCopyCall { c.urlParams_.Set("keepRevisionForever", fmt.Sprint(keepRevisionForever)) return c @@ -4079,8 +5666,18 @@ func (c *FilesCopyCall) OcrLanguage(ocrLanguage string) *FilesCopyCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesCopyCall) SupportsAllDrives(supportsAllDrives bool) *FilesCopyCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesCopyCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesCopyCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -4197,7 +5794,7 @@ func (c *FilesCopyCall) Do(opts ...googleapi.CallOption) (*File, error) { // }, // "keepRevisionForever": { // "default": "false", - // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", // "location": "query", // "type": "boolean" // }, @@ -4206,9 +5803,15 @@ func (c *FilesCopyCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -4262,7 +5865,7 @@ func (c *FilesCreateCall) IgnoreDefaultVisibility(ignoreDefaultVisibility bool) // KeepRevisionForever sets the optional parameter // "keepRevisionForever": Whether to set the 'keepForever' field in the // new head revision. This is only applicable to files with binary -// content in Drive. +// content in Google Drive. func (c *FilesCreateCall) KeepRevisionForever(keepRevisionForever bool) *FilesCreateCall { c.urlParams_.Set("keepRevisionForever", fmt.Sprint(keepRevisionForever)) return c @@ -4275,8 +5878,18 @@ func (c *FilesCreateCall) OcrLanguage(ocrLanguage string) *FilesCreateCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesCreateCall) SupportsAllDrives(supportsAllDrives bool) *FilesCreateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesCreateCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesCreateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -4472,7 +6085,7 @@ func (c *FilesCreateCall) Do(opts ...googleapi.CallOption) (*File, error) { // }, // "keepRevisionForever": { // "default": "false", - // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", // "location": "query", // "type": "boolean" // }, @@ -4481,9 +6094,15 @@ func (c *FilesCreateCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -4523,8 +6142,8 @@ type FilesDeleteCall struct { } // Delete: Permanently deletes a file owned by the user without moving -// it to the trash. If the file belongs to a Team Drive the user must be -// an organizer on the parent. If the target is a folder, all +// it to the trash. If the file belongs to a shared drive the user must +// be an organizer on the parent. If the target is a folder, all // descendants owned by the user are also deleted. func (r *FilesService) Delete(fileId string) *FilesDeleteCall { c := &FilesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} @@ -4532,8 +6151,18 @@ func (r *FilesService) Delete(fileId string) *FilesDeleteCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesDeleteCall) SupportsAllDrives(supportsAllDrives bool) *FilesDeleteCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesDeleteCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -4599,7 +6228,7 @@ func (c *FilesDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.", + // "description": "Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.", // "httpMethod": "DELETE", // "id": "drive.files.delete", // "parameterOrder": [ @@ -4612,9 +6241,15 @@ func (c *FilesDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -5041,8 +6676,18 @@ func (c *FilesGetCall) AcknowledgeAbuse(acknowledgeAbuse bool) *FilesGetCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesGetCall) SupportsAllDrives(supportsAllDrives bool) *FilesGetCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesGetCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesGetCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -5181,9 +6826,15 @@ func (c *FilesGetCall) Do(opts ...googleapi.CallOption) (*File, error) { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -5224,12 +6875,10 @@ func (r *FilesService) List() *FilesListCall { return c } -// Corpora sets the optional parameter "corpora": Comma-separated list -// of bodies of items (files/documents) to which the query applies. -// Supported bodies are 'user', 'domain', 'teamDrive' and -// 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all -// other values must be used in isolation. Prefer 'user' or 'teamDrive' -// to 'allTeamDrives' for efficiency. +// Corpora sets the optional parameter "corpora": Bodies of items +// (files/documents) to which the query applies. Supported bodies are +// 'user', 'domain', 'drive' and 'allDrives'. Prefer 'user' or 'drive' +// to 'allDrives' for efficiency. func (c *FilesListCall) Corpora(corpora string) *FilesListCall { c.urlParams_.Set("corpora", corpora) return c @@ -5246,9 +6895,26 @@ func (c *FilesListCall) Corpus(corpus string) *FilesListCall { return c } +// DriveId sets the optional parameter "driveId": ID of the shared drive +// to search. +func (c *FilesListCall) DriveId(driveId string) *FilesListCall { + c.urlParams_.Set("driveId", driveId) + return c +} + +// IncludeItemsFromAllDrives sets the optional parameter +// "includeItemsFromAllDrives": Deprecated - Whether both My Drive and +// shared drive items should be included in results. This parameter will +// only be effective until June 1, 2020. Afterwards shared drive items +// will be included in the results. +func (c *FilesListCall) IncludeItemsFromAllDrives(includeItemsFromAllDrives bool) *FilesListCall { + c.urlParams_.Set("includeItemsFromAllDrives", fmt.Sprint(includeItemsFromAllDrives)) + return c +} + // IncludeTeamDriveItems sets the optional parameter -// "includeTeamDriveItems": Whether Team Drive items should be included -// in results. +// "includeTeamDriveItems": Deprecated use includeItemsFromAllDrives +// instead. func (c *FilesListCall) IncludeTeamDriveItems(includeTeamDriveItems bool) *FilesListCall { c.urlParams_.Set("includeTeamDriveItems", fmt.Sprint(includeTeamDriveItems)) return c @@ -5299,15 +6965,25 @@ func (c *FilesListCall) Spaces(spaces string) *FilesListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesListCall) SupportsAllDrives(supportsAllDrives bool) *FilesListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesListCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c } -// TeamDriveId sets the optional parameter "teamDriveId": ID of Team -// Drive to search. +// TeamDriveId sets the optional parameter "teamDriveId": Deprecated use +// driveId instead. func (c *FilesListCall) TeamDriveId(teamDriveId string) *FilesListCall { c.urlParams_.Set("teamDriveId", teamDriveId) return c @@ -5413,7 +7089,7 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "id": "drive.files.list", // "parameters": { // "corpora": { - // "description": "Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.", + // "description": "Bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'drive' and 'allDrives'. Prefer 'user' or 'drive' to 'allDrives' for efficiency.", // "location": "query", // "type": "string" // }, @@ -5430,9 +7106,20 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "location": "query", // "type": "string" // }, + // "driveId": { + // "description": "ID of the shared drive to search.", + // "location": "query", + // "type": "string" + // }, + // "includeItemsFromAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.", + // "location": "query", + // "type": "boolean" + // }, // "includeTeamDriveItems": { // "default": "false", - // "description": "Whether Team Drive items should be included in results.", + // "description": "Deprecated use includeItemsFromAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -5466,14 +7153,20 @@ func (c *FilesListCall) Do(opts ...googleapi.CallOption) (*FileList, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "teamDriveId": { - // "description": "ID of Team Drive to search.", + // "description": "Deprecated use driveId instead.", // "location": "query", // "type": "string" // } @@ -5547,7 +7240,7 @@ func (c *FilesUpdateCall) AddParents(addParents string) *FilesUpdateCall { // KeepRevisionForever sets the optional parameter // "keepRevisionForever": Whether to set the 'keepForever' field in the // new head revision. This is only applicable to files with binary -// content in Drive. +// content in Google Drive. func (c *FilesUpdateCall) KeepRevisionForever(keepRevisionForever bool) *FilesUpdateCall { c.urlParams_.Set("keepRevisionForever", fmt.Sprint(keepRevisionForever)) return c @@ -5567,8 +7260,18 @@ func (c *FilesUpdateCall) RemoveParents(removeParents string) *FilesUpdateCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesUpdateCall) SupportsAllDrives(supportsAllDrives bool) *FilesUpdateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesUpdateCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesUpdateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -5775,7 +7478,7 @@ func (c *FilesUpdateCall) Do(opts ...googleapi.CallOption) (*File, error) { // }, // "keepRevisionForever": { // "default": "false", - // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.", + // "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.", // "location": "query", // "type": "boolean" // }, @@ -5789,9 +7492,15 @@ func (c *FilesUpdateCall) Do(opts ...googleapi.CallOption) (*File, error) { // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -5849,8 +7558,18 @@ func (c *FilesWatchCall) AcknowledgeAbuse(acknowledgeAbuse bool) *FilesWatchCall return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *FilesWatchCall) SupportsAllDrives(supportsAllDrives bool) *FilesWatchCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *FilesWatchCall) SupportsTeamDrives(supportsTeamDrives bool) *FilesWatchCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -5981,9 +7700,15 @@ func (c *FilesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // } @@ -6023,7 +7748,7 @@ type PermissionsCreateCall struct { header_ http.Header } -// Create: Creates a permission for a file or Team Drive. +// Create: Creates a permission for a file or shared drive. func (r *PermissionsService) Create(fileId string, permission *Permission) *PermissionsCreateCall { c := &PermissionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -6048,8 +7773,18 @@ func (c *PermissionsCreateCall) SendNotificationEmail(sendNotificationEmail bool return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsCreateCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsCreateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsCreateCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsCreateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6066,8 +7801,9 @@ func (c *PermissionsCreateCall) TransferOwnership(transferOwnership bool) *Permi // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsCreateCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsCreateCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -6163,7 +7899,7 @@ func (c *PermissionsCreateCall) Do(opts ...googleapi.CallOption) (*Permission, e } return ret, nil // { - // "description": "Creates a permission for a file or Team Drive.", + // "description": "Creates a permission for a file or shared drive.", // "httpMethod": "POST", // "id": "drive.permissions.create", // "parameterOrder": [ @@ -6176,7 +7912,7 @@ func (c *PermissionsCreateCall) Do(opts ...googleapi.CallOption) (*Permission, e // "type": "string" // }, // "fileId": { - // "description": "The ID of the file or Team Drive.", + // "description": "The ID of the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -6186,9 +7922,15 @@ func (c *PermissionsCreateCall) Do(opts ...googleapi.CallOption) (*Permission, e // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -6200,7 +7942,7 @@ func (c *PermissionsCreateCall) Do(opts ...googleapi.CallOption) (*Permission, e // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -6239,8 +7981,18 @@ func (r *PermissionsService) Delete(fileId string, permissionId string) *Permiss return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsDeleteCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsDeleteCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsDeleteCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6248,8 +8000,9 @@ func (c *PermissionsDeleteCall) SupportsTeamDrives(supportsTeamDrives bool) *Per // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsDeleteCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsDeleteCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -6325,7 +8078,7 @@ func (c *PermissionsDeleteCall) Do(opts ...googleapi.CallOption) error { // ], // "parameters": { // "fileId": { - // "description": "The ID of the file or Team Drive.", + // "description": "The ID of the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -6336,15 +8089,21 @@ func (c *PermissionsDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -6378,8 +8137,18 @@ func (r *PermissionsService) Get(fileId string, permissionId string) *Permission return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsGetCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsGetCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsGetCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsGetCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6387,8 +8156,9 @@ func (c *PermissionsGetCall) SupportsTeamDrives(supportsTeamDrives bool) *Permis // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsGetCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsGetCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -6513,15 +8283,21 @@ func (c *PermissionsGetCall) Do(opts ...googleapi.CallOption) (*Permission, erro // "required": true, // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -6553,7 +8329,7 @@ type PermissionsListCall struct { header_ http.Header } -// List: Lists a file's or Team Drive's permissions. +// List: Lists a file's or shared drive's permissions. func (r *PermissionsService) List(fileId string) *PermissionsListCall { c := &PermissionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -6561,9 +8337,9 @@ func (r *PermissionsService) List(fileId string) *PermissionsListCall { } // PageSize sets the optional parameter "pageSize": The maximum number -// of permissions to return per page. When not set for files in a Team -// Drive, at most 100 results will be returned. When not set for files -// that are not in a Team Drive, the entire list will be returned. +// of permissions to return per page. When not set for files in a shared +// drive, at most 100 results will be returned. When not set for files +// that are not in a shared drive, the entire list will be returned. func (c *PermissionsListCall) PageSize(pageSize int64) *PermissionsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c @@ -6577,8 +8353,18 @@ func (c *PermissionsListCall) PageToken(pageToken string) *PermissionsListCall { return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsListCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsListCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsListCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsListCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6586,8 +8372,9 @@ func (c *PermissionsListCall) SupportsTeamDrives(supportsTeamDrives bool) *Permi // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsListCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsListCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -6691,7 +8478,7 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, } return ret, nil // { - // "description": "Lists a file's or Team Drive's permissions.", + // "description": "Lists a file's or shared drive's permissions.", // "httpMethod": "GET", // "id": "drive.permissions.list", // "parameterOrder": [ @@ -6699,13 +8486,13 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, // ], // "parameters": { // "fileId": { - // "description": "The ID of the file or Team Drive.", + // "description": "The ID of the file or shared drive.", // "location": "path", // "required": true, // "type": "string" // }, // "pageSize": { - // "description": "The maximum number of permissions to return per page. When not set for files in a Team Drive, at most 100 results will be returned. When not set for files that are not in a Team Drive, the entire list will be returned.", + // "description": "The maximum number of permissions to return per page. When not set for files in a shared drive, at most 100 results will be returned. When not set for files that are not in a shared drive, the entire list will be returned.", // "format": "int32", // "location": "query", // "maximum": "100", @@ -6717,15 +8504,21 @@ func (c *PermissionsListCall) Do(opts ...googleapi.CallOption) (*PermissionList, // "location": "query", // "type": "string" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -6795,8 +8588,18 @@ func (c *PermissionsUpdateCall) RemoveExpiration(removeExpiration bool) *Permiss return c } +// SupportsAllDrives sets the optional parameter "supportsAllDrives": +// Deprecated - Whether the requesting application supports both My +// Drives and shared drives. This parameter will only be effective until +// June 1, 2020. Afterwards all applications are assumed to support +// shared drives. +func (c *PermissionsUpdateCall) SupportsAllDrives(supportsAllDrives bool) *PermissionsUpdateCall { + c.urlParams_.Set("supportsAllDrives", fmt.Sprint(supportsAllDrives)) + return c +} + // SupportsTeamDrives sets the optional parameter "supportsTeamDrives": -// Whether the requesting application supports Team Drives. +// Deprecated use supportsAllDrives instead. func (c *PermissionsUpdateCall) SupportsTeamDrives(supportsTeamDrives bool) *PermissionsUpdateCall { c.urlParams_.Set("supportsTeamDrives", fmt.Sprint(supportsTeamDrives)) return c @@ -6813,8 +8616,9 @@ func (c *PermissionsUpdateCall) TransferOwnership(transferOwnership bool) *Permi // UseDomainAdminAccess sets the optional parameter // "useDomainAdminAccess": Issue the request as a domain administrator; -// if set to true, then the requester will be granted access if they are -// an administrator of the domain to which the item belongs. +// if set to true, then the requester will be granted access if the file +// ID parameter refers to a shared drive and the requester is an +// administrator of the domain to which the shared drive belongs. func (c *PermissionsUpdateCall) UseDomainAdminAccess(useDomainAdminAccess bool) *PermissionsUpdateCall { c.urlParams_.Set("useDomainAdminAccess", fmt.Sprint(useDomainAdminAccess)) return c @@ -6920,7 +8724,7 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // ], // "parameters": { // "fileId": { - // "description": "The ID of the file or Team Drive.", + // "description": "The ID of the file or shared drive.", // "location": "path", // "required": true, // "type": "string" @@ -6937,9 +8741,15 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // "location": "query", // "type": "boolean" // }, + // "supportsAllDrives": { + // "default": "false", + // "description": "Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.", + // "location": "query", + // "type": "boolean" + // }, // "supportsTeamDrives": { // "default": "false", - // "description": "Whether the requesting application supports Team Drives.", + // "description": "Deprecated use supportsAllDrives instead.", // "location": "query", // "type": "boolean" // }, @@ -6951,7 +8761,7 @@ func (c *PermissionsUpdateCall) Do(opts ...googleapi.CallOption) (*Permission, e // }, // "useDomainAdminAccess": { // "default": "false", - // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the item belongs.", + // "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.", // "location": "query", // "type": "boolean" // } @@ -7803,9 +9613,9 @@ type RevisionsDeleteCall struct { } // Delete: Permanently deletes a file version. You can only delete -// revisions for files with binary content, like images or videos. -// Revisions for other files, like Google Docs or Sheets, and the last -// remaining file version can't be deleted. +// revisions for files with binary content in Google Drive, like images +// or videos. Revisions for other files, like Google Docs or Sheets, and +// the last remaining file version can't be deleted. func (r *RevisionsService) Delete(fileId string, revisionId string) *RevisionsDeleteCall { c := &RevisionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.fileId = fileId @@ -7874,7 +9684,7 @@ func (c *RevisionsDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes a file version. You can only delete revisions for files with binary content, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", + // "description": "Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.", // "httpMethod": "DELETE", // "id": "drive.revisions.delete", // "parameterOrder": [ @@ -8451,7 +10261,7 @@ type TeamdrivesCreateCall struct { header_ http.Header } -// Create: Creates a new Team Drive. +// Create: Deprecated use drives.create instead. func (r *TeamdrivesService) Create(requestId string, teamdrive *TeamDrive) *TeamdrivesCreateCall { c := &TeamdrivesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.urlParams_.Set("requestId", requestId) @@ -8546,7 +10356,7 @@ func (c *TeamdrivesCreateCall) Do(opts ...googleapi.CallOption) (*TeamDrive, err } return ret, nil // { - // "description": "Creates a new Team Drive.", + // "description": "Deprecated use drives.create instead.", // "httpMethod": "POST", // "id": "drive.teamdrives.create", // "parameterOrder": [ @@ -8584,8 +10394,7 @@ type TeamdrivesDeleteCall struct { header_ http.Header } -// Delete: Permanently deletes a Team Drive for which the user is an -// organizer. The Team Drive cannot contain any untrashed items. +// Delete: Deprecated use drives.delete instead. func (r *TeamdrivesService) Delete(teamDriveId string) *TeamdrivesDeleteCall { c := &TeamdrivesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -8652,7 +10461,7 @@ func (c *TeamdrivesDeleteCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes a Team Drive for which the user is an organizer. The Team Drive cannot contain any untrashed items.", + // "description": "Deprecated use drives.delete instead.", // "httpMethod": "DELETE", // "id": "drive.teamdrives.delete", // "parameterOrder": [ @@ -8685,7 +10494,7 @@ type TeamdrivesGetCall struct { header_ http.Header } -// Get: Gets a Team Drive's metadata by ID. +// Get: Deprecated use drives.get instead. func (r *TeamdrivesService) Get(teamDriveId string) *TeamdrivesGetCall { c := &TeamdrivesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -8799,7 +10608,7 @@ func (c *TeamdrivesGetCall) Do(opts ...googleapi.CallOption) (*TeamDrive, error) } return ret, nil // { - // "description": "Gets a Team Drive's metadata by ID.", + // "description": "Deprecated use drives.get instead.", // "httpMethod": "GET", // "id": "drive.teamdrives.get", // "parameterOrder": [ @@ -8841,7 +10650,7 @@ type TeamdrivesListCall struct { header_ http.Header } -// List: Lists the user's Team Drives. +// List: Deprecated use drives.list instead. func (r *TeamdrivesService) List() *TeamdrivesListCall { c := &TeamdrivesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c @@ -8972,7 +10781,7 @@ func (c *TeamdrivesListCall) Do(opts ...googleapi.CallOption) (*TeamDriveList, e } return ret, nil // { - // "description": "Lists the user's Team Drives.", + // "description": "Deprecated use drives.list instead.", // "httpMethod": "GET", // "id": "drive.teamdrives.list", // "parameters": { @@ -9046,7 +10855,7 @@ type TeamdrivesUpdateCall struct { header_ http.Header } -// Update: Updates a Team Drive's metadata +// Update: Deprecated use drives.update instead func (r *TeamdrivesService) Update(teamDriveId string, teamdrive *TeamDrive) *TeamdrivesUpdateCall { c := &TeamdrivesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.teamDriveId = teamDriveId @@ -9153,7 +10962,7 @@ func (c *TeamdrivesUpdateCall) Do(opts ...googleapi.CallOption) (*TeamDrive, err } return ret, nil // { - // "description": "Updates a Team Drive's metadata", + // "description": "Deprecated use drives.update instead", // "httpMethod": "PATCH", // "id": "drive.teamdrives.update", // "parameterOrder": [ diff --git a/vendor/google.golang.org/api/storage/v1/storage-api.json b/vendor/google.golang.org/api/storage/v1/storage-api.json index 0342a63b4..ca630362b 100644 --- a/vendor/google.golang.org/api/storage/v1/storage-api.json +++ b/vendor/google.golang.org/api/storage/v1/storage-api.json @@ -26,7 +26,7 @@ "description": "Stores and retrieves potentially large, immutable data objects.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/storage/docs/json_api/", - "etag": "\"J3WqvAcMk4eQjJXvfSI4Yr8VouA/5J1bGH010PqoE1O9vmClDRlYmZI\"", + "etag": "\"VPK3KBfpaEgZ16pozGOoMYfKc0U/g26t9M1iNI-j1-5ry7bpKWNPs60\"", "icons": { "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" @@ -109,6 +109,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -142,6 +147,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -171,6 +181,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -203,6 +218,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -239,6 +259,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -278,6 +303,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -326,6 +356,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -378,6 +413,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -410,6 +450,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -422,10 +467,7 @@ }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" + "https://www.googleapis.com/auth/devstorage.full_control" ] }, "insert": { @@ -495,6 +537,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -559,6 +606,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -599,6 +651,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -694,6 +751,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -726,6 +788,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -741,8 +808,7 @@ }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_write" + "https://www.googleapis.com/auth/devstorage.full_control" ] }, "testIamPermissions": { @@ -767,6 +833,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -864,6 +935,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -928,6 +1004,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -961,6 +1042,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -990,6 +1076,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1034,6 +1125,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1070,6 +1166,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1109,6 +1210,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1152,6 +1258,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1186,6 +1297,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1218,6 +1334,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1251,6 +1372,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1307,6 +1433,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1353,6 +1484,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1395,6 +1531,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1440,6 +1581,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1489,6 +1635,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1541,6 +1692,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1622,6 +1778,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1746,6 +1907,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "sourceBucket": { "description": "Name of the bucket in which to find the source object.", "location": "path", @@ -1834,6 +2000,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1911,6 +2082,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1958,6 +2134,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2078,6 +2259,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2153,6 +2339,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2262,6 +2453,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request, for Requester Pays buckets.", "location": "query", @@ -2396,6 +2592,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "rewriteToken": { "description": "Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.", "location": "query", @@ -2465,6 +2666,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2519,6 +2725,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2622,6 +2833,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2695,6 +2911,11 @@ "location": "query", "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2727,6 +2948,210 @@ }, "projects": { "resources": { + "hmacKeys": { + "methods": { + "create": { + "description": "Creates a new HMAC key for the specified service account.", + "httpMethod": "POST", + "id": "storage.projects.hmacKeys.create", + "parameterOrder": [ + "projectId", + "serviceAccountEmail" + ], + "parameters": { + "projectId": { + "description": "Project ID owning the service account.", + "location": "path", + "required": true, + "type": "string" + }, + "serviceAccountEmail": { + "description": "Email address of the service account.", + "location": "query", + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request.", + "location": "query", + "type": "string" + } + }, + "path": "projects/{projectId}/hmacKeys", + "response": { + "$ref": "HmacKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control" + ] + }, + "delete": { + "description": "Deletes an HMAC key.", + "httpMethod": "DELETE", + "id": "storage.projects.hmacKeys.delete", + "parameterOrder": [ + "projectId", + "accessId" + ], + "parameters": { + "accessId": { + "description": "Name of the HMAC key to be deleted.", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID owning the requested key", + "location": "path", + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request.", + "location": "query", + "type": "string" + } + }, + "path": "projects/{projectId}/hmacKeys/{accessId}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "description": "Retrieves an HMAC key's metadata", + "httpMethod": "GET", + "id": "storage.projects.hmacKeys.get", + "parameterOrder": [ + "projectId", + "accessId" + ], + "parameters": { + "accessId": { + "description": "Name of the HMAC key.", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID owning the service account of the requested key.", + "location": "path", + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request.", + "location": "query", + "type": "string" + } + }, + "path": "projects/{projectId}/hmacKeys/{accessId}", + "response": { + "$ref": "HmacKeyMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.read_only" + ] + }, + "list": { + "description": "Retrieves a list of HMAC keys matching the criteria.", + "httpMethod": "GET", + "id": "storage.projects.hmacKeys.list", + "parameterOrder": [ + "projectId" + ], + "parameters": { + "maxResults": { + "default": "250", + "description": "Maximum number of items to return in a single page of responses. The service uses this parameter or 250 items, whichever is smaller. The max number of items per page will also be limited by the number of distinct service accounts in the response. If the number of service accounts in a single response is too high, the page will truncated and a next page token will be returned.", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + }, + "projectId": { + "description": "Name of the project in which to look for HMAC keys.", + "location": "path", + "required": true, + "type": "string" + }, + "serviceAccountEmail": { + "description": "If present, only keys for the given service account are returned.", + "location": "query", + "type": "string" + }, + "showDeletedKeys": { + "description": "Whether or not to show keys in the DELETED state.", + "location": "query", + "type": "boolean" + }, + "userProject": { + "description": "The project to be billed for this request.", + "location": "query", + "type": "string" + } + }, + "path": "projects/{projectId}/hmacKeys", + "response": { + "$ref": "HmacKeysMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only" + ] + }, + "update": { + "description": "Updates the state of an HMAC key. See the HMAC Key resource descriptor for valid states.", + "httpMethod": "PUT", + "id": "storage.projects.hmacKeys.update", + "parameterOrder": [ + "projectId", + "accessId" + ], + "parameters": { + "accessId": { + "description": "Name of the HMAC key being updated.", + "location": "path", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Project ID owning the service account of the updated key.", + "location": "path", + "required": true, + "type": "string" + }, + "userProject": { + "description": "The project to be billed for this request.", + "location": "query", + "type": "string" + } + }, + "path": "projects/{projectId}/hmacKeys/{accessId}", + "request": { + "$ref": "HmacKeyMetadata" + }, + "response": { + "$ref": "HmacKeyMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control" + ] + } + } + }, "serviceAccount": { "methods": { "get": { @@ -2743,6 +3168,11 @@ "required": true, "type": "string" }, + "provisionalUserProject": { + "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + "location": "query", + "type": "string" + }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -2766,7 +3196,7 @@ } } }, - "revision": "20190129", + "revision": "20190523", "rootUrl": "https://www.googleapis.com/", "schemas": { "Bucket": { @@ -2962,6 +3392,10 @@ "description": "The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.", "type": "string" }, + "locationType": { + "description": "The type of the bucket location.", + "type": "string" + }, "logging": { "description": "The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.", "properties": { @@ -3308,11 +3742,6 @@ "description": "Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.", "type": "string" }, - "kind": { - "default": "storage#expr", - "description": "The kind of item this is. For storage, this is always storage#expr. This field is ignored on input.", - "type": "string" - }, "location": { "description": "An optional string indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", "type": "string" @@ -3324,6 +3753,99 @@ }, "type": "object" }, + "HmacKey": { + "description": "JSON template to produce a JSON-style HMAC Key resource for Create responses.", + "id": "HmacKey", + "properties": { + "kind": { + "default": "storage#hmacKey", + "description": "The kind of item this is. For HMAC keys, this is always storage#hmacKey.", + "type": "string" + }, + "metadata": { + "$ref": "HmacKeyMetadata", + "description": "Key metadata." + }, + "secret": { + "description": "HMAC secret key material.", + "type": "string" + } + }, + "type": "object" + }, + "HmacKeyMetadata": { + "description": "JSON template to produce a JSON-style HMAC Key metadata resource.", + "id": "HmacKeyMetadata", + "properties": { + "accessId": { + "description": "The ID of the HMAC Key.", + "type": "string" + }, + "etag": { + "description": "HTTP 1.1 Entity tag for the HMAC key.", + "type": "string" + }, + "id": { + "description": "The ID of the HMAC key, including the Project ID and the Access ID.", + "type": "string" + }, + "kind": { + "default": "storage#hmacKeyMetadata", + "description": "The kind of item this is. For HMAC Key metadata, this is always storage#hmacKeyMetadata.", + "type": "string" + }, + "projectId": { + "description": "Project ID owning the service account to which the key authenticates.", + "type": "string" + }, + "selfLink": { + "description": "The link to this resource.", + "type": "string" + }, + "serviceAccountEmail": { + "description": "The email address of the key's associated service account.", + "type": "string" + }, + "state": { + "description": "The state of the key. Can be one of ACTIVE, INACTIVE, or DELETED.", + "type": "string" + }, + "timeCreated": { + "description": "The creation time of the HMAC key in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "updated": { + "description": "The last modification time of the HMAC key metadata in RFC 3339 format.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "HmacKeysMetadata": { + "description": "A list of hmacKeys.", + "id": "HmacKeysMetadata", + "properties": { + "items": { + "description": "The list of items.", + "items": { + "$ref": "HmacKeyMetadata" + }, + "type": "array" + }, + "kind": { + "default": "storage#hmacKeysMetadata", + "description": "The kind of item this is. For lists of hmacKeys, this is always storage#hmacKeysMetadata.", + "type": "string" + }, + "nextPageToken": { + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "Notification": { "description": "A subscription to receive Google PubSub notifications.", "id": "Notification", diff --git a/vendor/google.golang.org/api/storage/v1/storage-gen.go b/vendor/google.golang.org/api/storage/v1/storage-gen.go index 6b0f227b8..36e37a1a5 100644 --- a/vendor/google.golang.org/api/storage/v1/storage-gen.go +++ b/vendor/google.golang.org/api/storage/v1/storage-gen.go @@ -238,6 +238,7 @@ type ObjectsService struct { func NewProjectsService(s *Service) *ProjectsService { rs := &ProjectsService{s: s} + rs.HmacKeys = NewProjectsHmacKeysService(s) rs.ServiceAccount = NewProjectsServiceAccountService(s) return rs } @@ -245,9 +246,20 @@ func NewProjectsService(s *Service) *ProjectsService { type ProjectsService struct { s *Service + HmacKeys *ProjectsHmacKeysService + ServiceAccount *ProjectsServiceAccountService } +func NewProjectsHmacKeysService(s *Service) *ProjectsHmacKeysService { + rs := &ProjectsHmacKeysService{s: s} + return rs +} + +type ProjectsHmacKeysService struct { + s *Service +} + func NewProjectsServiceAccountService(s *Service) *ProjectsServiceAccountService { rs := &ProjectsServiceAccountService{s: s} return rs @@ -318,6 +330,9 @@ type Bucket struct { // US. See the developer's guide for the authoritative list. Location string `json:"location,omitempty"` + // LocationType: The type of the bucket location. + LocationType string `json:"locationType,omitempty"` + // Logging: The bucket's logging configuration, which defines the // destination bucket and optional name prefix for the current bucket's // logs. @@ -1276,10 +1291,6 @@ type Expr struct { // message determines which well-known feature set of CEL is supported. Expression string `json:"expression,omitempty"` - // Kind: The kind of item this is. For storage, this is always - // storage#expr. This field is ignored on input. - Kind string `json:"kind,omitempty"` - // Location: An optional string indicating the location of the // expression for error reporting, e.g. a file name and a position in // the file. @@ -1313,6 +1324,153 @@ func (s *Expr) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// HmacKey: JSON template to produce a JSON-style HMAC Key resource for +// Create responses. +type HmacKey struct { + // Kind: The kind of item this is. For HMAC keys, this is always + // storage#hmacKey. + Kind string `json:"kind,omitempty"` + + // Metadata: Key metadata. + Metadata *HmacKeyMetadata `json:"metadata,omitempty"` + + // Secret: HMAC secret key material. + Secret string `json:"secret,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Kind") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Kind") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HmacKey) MarshalJSON() ([]byte, error) { + type NoMethod HmacKey + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// HmacKeyMetadata: JSON template to produce a JSON-style HMAC Key +// metadata resource. +type HmacKeyMetadata struct { + // AccessId: The ID of the HMAC Key. + AccessId string `json:"accessId,omitempty"` + + // Etag: HTTP 1.1 Entity tag for the HMAC key. + Etag string `json:"etag,omitempty"` + + // Id: The ID of the HMAC key, including the Project ID and the Access + // ID. + Id string `json:"id,omitempty"` + + // Kind: The kind of item this is. For HMAC Key metadata, this is always + // storage#hmacKeyMetadata. + Kind string `json:"kind,omitempty"` + + // ProjectId: Project ID owning the service account to which the key + // authenticates. + ProjectId string `json:"projectId,omitempty"` + + // SelfLink: The link to this resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServiceAccountEmail: The email address of the key's associated + // service account. + ServiceAccountEmail string `json:"serviceAccountEmail,omitempty"` + + // State: The state of the key. Can be one of ACTIVE, INACTIVE, or + // DELETED. + State string `json:"state,omitempty"` + + // TimeCreated: The creation time of the HMAC key in RFC 3339 format. + TimeCreated string `json:"timeCreated,omitempty"` + + // Updated: The last modification time of the HMAC key metadata in RFC + // 3339 format. + Updated string `json:"updated,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AccessId") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AccessId") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HmacKeyMetadata) MarshalJSON() ([]byte, error) { + type NoMethod HmacKeyMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// HmacKeysMetadata: A list of hmacKeys. +type HmacKeysMetadata struct { + // Items: The list of items. + Items []*HmacKeyMetadata `json:"items,omitempty"` + + // Kind: The kind of item this is. For lists of hmacKeys, this is always + // storage#hmacKeysMetadata. + Kind string `json:"kind,omitempty"` + + // NextPageToken: The continuation token, used to page through large + // result sets. Provide this value in a subsequent request to return the + // next page of results. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "Items") to + // unconditionally include in API requests. By default, fields with + // empty values are omitted from API requests. However, any non-pointer, + // non-interface field appearing in ForceSendFields will be sent to the + // server regardless of whether the field is empty or not. This may be + // used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *HmacKeysMetadata) MarshalJSON() ([]byte, error) { + type NoMethod HmacKeysMetadata + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // Notification: A subscription to receive Google PubSub notifications. type Notification struct { // CustomAttributes: An optional list of additional attributes to attach @@ -2147,6 +2305,14 @@ func (r *BucketAccessControlsService) Delete(bucket string, entity string) *Buck return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsDeleteCall) UserProject(userProject string) *BucketAccessControlsDeleteCall { @@ -2235,6 +2401,11 @@ func (c *BucketAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) error // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -2271,6 +2442,14 @@ func (r *BucketAccessControlsService) Get(bucket string, entity string) *BucketA return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsGetCall) UserProject(userProject string) *BucketAccessControlsGetCall { @@ -2397,6 +2576,11 @@ func (c *BucketAccessControlsGetCall) Do(opts ...googleapi.CallOption) (*BucketA // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -2434,6 +2618,14 @@ func (r *BucketAccessControlsService) Insert(bucket string, bucketaccesscontrol return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsInsertCall) UserProject(userProject string) *BucketAccessControlsInsertCall { @@ -2544,6 +2736,11 @@ func (c *BucketAccessControlsInsertCall) Do(opts ...googleapi.CallOption) (*Buck // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -2583,6 +2780,14 @@ func (r *BucketAccessControlsService) List(bucket string) *BucketAccessControlsL return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsListCall) UserProject(userProject string) *BucketAccessControlsListCall { @@ -2701,6 +2906,11 @@ func (c *BucketAccessControlsListCall) Do(opts ...googleapi.CallOption) (*Bucket // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -2740,6 +2950,14 @@ func (r *BucketAccessControlsService) Patch(bucket string, entity string, bucket return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsPatchCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsPatchCall) UserProject(userProject string) *BucketAccessControlsPatchCall { @@ -2858,6 +3076,11 @@ func (c *BucketAccessControlsPatchCall) Do(opts ...googleapi.CallOption) (*Bucke // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -2900,6 +3123,14 @@ func (r *BucketAccessControlsService) Update(bucket string, entity string, bucke return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *BucketAccessControlsUpdateCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketAccessControlsUpdateCall) UserProject(userProject string) *BucketAccessControlsUpdateCall { @@ -3018,6 +3249,11 @@ func (c *BucketAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) (*Buck // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -3072,6 +3308,14 @@ func (c *BucketsDeleteCall) IfMetagenerationNotMatch(ifMetagenerationNotMatch in return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *BucketsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsDeleteCall) UserProject(userProject string) *BucketsDeleteCall { @@ -3164,6 +3408,11 @@ func (c *BucketsDeleteCall) Do(opts ...googleapi.CallOption) error { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -3227,6 +3476,14 @@ func (c *BucketsGetCall) Projection(projection string) *BucketsGetCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsGetCall) ProvisionalUserProject(provisionalUserProject string) *BucketsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsGetCall) UserProject(userProject string) *BucketsGetCall { @@ -3370,6 +3627,11 @@ func (c *BucketsGetCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -3409,6 +3671,14 @@ func (r *BucketsService) GetIamPolicy(bucket string) *BucketsGetIamPolicyCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsGetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsGetIamPolicyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsGetIamPolicyCall) UserProject(userProject string) *BucketsGetIamPolicyCall { @@ -3527,6 +3797,11 @@ func (c *BucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -3539,10 +3814,7 @@ func (c *BucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", - // "https://www.googleapis.com/auth/cloud-platform.read-only", - // "https://www.googleapis.com/auth/devstorage.full_control", - // "https://www.googleapis.com/auth/devstorage.read_only", - // "https://www.googleapis.com/auth/devstorage.read_write" + // "https://www.googleapis.com/auth/devstorage.full_control" // ] // } @@ -3618,6 +3890,14 @@ func (c *BucketsInsertCall) Projection(projection string) *BucketsInsertCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsInsertCall) ProvisionalUserProject(provisionalUserProject string) *BucketsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. func (c *BucketsInsertCall) UserProject(userProject string) *BucketsInsertCall { @@ -3778,6 +4058,11 @@ func (c *BucketsInsertCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request.", // "location": "query", @@ -3851,6 +4136,14 @@ func (c *BucketsListCall) Projection(projection string) *BucketsListCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsListCall) ProvisionalUserProject(provisionalUserProject string) *BucketsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. func (c *BucketsListCall) UserProject(userProject string) *BucketsListCall { @@ -3997,6 +4290,11 @@ func (c *BucketsListCall) Do(opts ...googleapi.CallOption) (*Buckets, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request.", // "location": "query", @@ -4057,6 +4355,14 @@ func (r *BucketsService) LockRetentionPolicy(bucket string, ifMetagenerationMatc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsLockRetentionPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsLockRetentionPolicyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsLockRetentionPolicyCall) UserProject(userProject string) *BucketsLockRetentionPolicyCall { @@ -4170,6 +4476,11 @@ func (c *BucketsLockRetentionPolicyCall) Do(opts ...googleapi.CallOption) (*Buck // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -4278,6 +4589,14 @@ func (c *BucketsPatchCall) Projection(projection string) *BucketsPatchCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsPatchCall) ProvisionalUserProject(provisionalUserProject string) *BucketsPatchCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsPatchCall) UserProject(userProject string) *BucketsPatchCall { @@ -4453,6 +4772,11 @@ func (c *BucketsPatchCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -4493,6 +4817,14 @@ func (r *BucketsService) SetIamPolicy(bucket string, policy *Policy) *BucketsSet return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsSetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *BucketsSetIamPolicyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsSetIamPolicyCall) UserProject(userProject string) *BucketsSetIamPolicyCall { @@ -4603,6 +4935,11 @@ func (c *BucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -4618,8 +4955,7 @@ func (c *BucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", - // "https://www.googleapis.com/auth/devstorage.full_control", - // "https://www.googleapis.com/auth/devstorage.read_write" + // "https://www.googleapis.com/auth/devstorage.full_control" // ] // } @@ -4645,6 +4981,14 @@ func (r *BucketsService) TestIamPermissions(bucket string, permissions []string) return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsTestIamPermissionsCall) ProvisionalUserProject(provisionalUserProject string) *BucketsTestIamPermissionsCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsTestIamPermissionsCall) UserProject(userProject string) *BucketsTestIamPermissionsCall { @@ -4771,6 +5115,11 @@ func (c *BucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestI // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -4881,6 +5230,14 @@ func (c *BucketsUpdateCall) Projection(projection string) *BucketsUpdateCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *BucketsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *BucketsUpdateCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *BucketsUpdateCall) UserProject(userProject string) *BucketsUpdateCall { @@ -5056,6 +5413,11 @@ func (c *BucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Bucket, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5195,6 +5557,14 @@ func (r *DefaultObjectAccessControlsService) Delete(bucket string, entity string return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsDeleteCall) UserProject(userProject string) *DefaultObjectAccessControlsDeleteCall { @@ -5283,6 +5653,11 @@ func (c *DefaultObjectAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5319,6 +5694,14 @@ func (r *DefaultObjectAccessControlsService) Get(bucket string, entity string) * return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsGetCall) UserProject(userProject string) *DefaultObjectAccessControlsGetCall { @@ -5445,6 +5828,11 @@ func (c *DefaultObjectAccessControlsGetCall) Do(opts ...googleapi.CallOption) (* // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5483,6 +5871,14 @@ func (r *DefaultObjectAccessControlsService) Insert(bucket string, objectaccessc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsInsertCall) UserProject(userProject string) *DefaultObjectAccessControlsInsertCall { @@ -5593,6 +5989,11 @@ func (c *DefaultObjectAccessControlsInsertCall) Do(opts ...googleapi.CallOption) // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5649,6 +6050,14 @@ func (c *DefaultObjectAccessControlsListCall) IfMetagenerationNotMatch(ifMetagen return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsListCall) UserProject(userProject string) *DefaultObjectAccessControlsListCall { @@ -5779,6 +6188,11 @@ func (c *DefaultObjectAccessControlsListCall) Do(opts ...googleapi.CallOption) ( // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5818,6 +6232,14 @@ func (r *DefaultObjectAccessControlsService) Patch(bucket string, entity string, return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsPatchCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsPatchCall) UserProject(userProject string) *DefaultObjectAccessControlsPatchCall { @@ -5936,6 +6358,11 @@ func (c *DefaultObjectAccessControlsPatchCall) Do(opts ...googleapi.CallOption) // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -5978,6 +6405,14 @@ func (r *DefaultObjectAccessControlsService) Update(bucket string, entity string return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *DefaultObjectAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *DefaultObjectAccessControlsUpdateCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *DefaultObjectAccessControlsUpdateCall) UserProject(userProject string) *DefaultObjectAccessControlsUpdateCall { @@ -6096,6 +6531,11 @@ func (c *DefaultObjectAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6136,6 +6576,14 @@ func (r *NotificationsService) Delete(bucket string, notification string) *Notif return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *NotificationsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *NotificationsDeleteCall) UserProject(userProject string) *NotificationsDeleteCall { @@ -6224,6 +6672,11 @@ func (c *NotificationsDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6260,6 +6713,14 @@ func (r *NotificationsService) Get(bucket string, notification string) *Notifica return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *NotificationsGetCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *NotificationsGetCall) UserProject(userProject string) *NotificationsGetCall { @@ -6386,6 +6847,11 @@ func (c *NotificationsGetCall) Do(opts ...googleapi.CallOption) (*Notification, // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6426,6 +6892,14 @@ func (r *NotificationsService) Insert(bucket string, notification *Notification) return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *NotificationsInsertCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *NotificationsInsertCall) UserProject(userProject string) *NotificationsInsertCall { @@ -6536,6 +7010,11 @@ func (c *NotificationsInsertCall) Do(opts ...googleapi.CallOption) (*Notificatio // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6577,6 +7056,14 @@ func (r *NotificationsService) List(bucket string) *NotificationsListCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *NotificationsListCall) ProvisionalUserProject(provisionalUserProject string) *NotificationsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *NotificationsListCall) UserProject(userProject string) *NotificationsListCall { @@ -6695,6 +7182,11 @@ func (c *NotificationsListCall) Do(opts ...googleapi.CallOption) (*Notifications // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6746,6 +7238,14 @@ func (c *ObjectAccessControlsDeleteCall) Generation(generation int64) *ObjectAcc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsDeleteCall) UserProject(userProject string) *ObjectAccessControlsDeleteCall { @@ -6848,6 +7348,11 @@ func (c *ObjectAccessControlsDeleteCall) Do(opts ...googleapi.CallOption) error // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -6894,6 +7399,14 @@ func (c *ObjectAccessControlsGetCall) Generation(generation int64) *ObjectAccess return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsGetCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsGetCall) UserProject(userProject string) *ObjectAccessControlsGetCall { @@ -7034,6 +7547,11 @@ func (c *ObjectAccessControlsGetCall) Do(opts ...googleapi.CallOption) (*ObjectA // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -7081,6 +7599,14 @@ func (c *ObjectAccessControlsInsertCall) Generation(generation int64) *ObjectAcc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsInsertCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsInsertCall) UserProject(userProject string) *ObjectAccessControlsInsertCall { @@ -7205,6 +7731,11 @@ func (c *ObjectAccessControlsInsertCall) Do(opts ...googleapi.CallOption) (*Obje // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -7254,6 +7785,14 @@ func (c *ObjectAccessControlsListCall) Generation(generation int64) *ObjectAcces return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsListCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsListCall) UserProject(userProject string) *ObjectAccessControlsListCall { @@ -7386,6 +7925,11 @@ func (c *ObjectAccessControlsListCall) Do(opts ...googleapi.CallOption) (*Object // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -7435,6 +7979,14 @@ func (c *ObjectAccessControlsPatchCall) Generation(generation int64) *ObjectAcce return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsPatchCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsPatchCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsPatchCall) UserProject(userProject string) *ObjectAccessControlsPatchCall { @@ -7567,6 +8119,11 @@ func (c *ObjectAccessControlsPatchCall) Do(opts ...googleapi.CallOption) (*Objec // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -7619,6 +8176,14 @@ func (c *ObjectAccessControlsUpdateCall) Generation(generation int64) *ObjectAcc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectAccessControlsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *ObjectAccessControlsUpdateCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectAccessControlsUpdateCall) UserProject(userProject string) *ObjectAccessControlsUpdateCall { @@ -7751,6 +8316,11 @@ func (c *ObjectAccessControlsUpdateCall) Do(opts ...googleapi.CallOption) (*Obje // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -7842,6 +8412,14 @@ func (c *ObjectsComposeCall) KmsKeyName(kmsKeyName string) *ObjectsComposeCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsComposeCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsComposeCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsComposeCall) UserProject(userProject string) *ObjectsComposeCall { @@ -7998,6 +8576,11 @@ func (c *ObjectsComposeCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -8152,6 +8735,14 @@ func (c *ObjectsCopyCall) Projection(projection string) *ObjectsCopyCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsCopyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsCopyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // SourceGeneration sets the optional parameter "sourceGeneration": If // present, selects a specific revision of the source object (as opposed // to the latest version, the default). @@ -8364,6 +8955,11 @@ func (c *ObjectsCopyCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "sourceBucket": { // "description": "Name of the bucket in which to find the source object.", // "location": "path", @@ -8469,6 +9065,14 @@ func (c *ObjectsDeleteCall) IfMetagenerationNotMatch(ifMetagenerationNotMatch in return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsDeleteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsDeleteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsDeleteCall) UserProject(userProject string) *ObjectsDeleteCall { @@ -8587,6 +9191,11 @@ func (c *ObjectsDeleteCall) Do(opts ...googleapi.CallOption) error { // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -8678,6 +9287,14 @@ func (c *ObjectsGetCall) Projection(projection string) *ObjectsGetCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsGetCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsGetCall) UserProject(userProject string) *ObjectsGetCall { @@ -8863,6 +9480,11 @@ func (c *ObjectsGetCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -8914,6 +9536,14 @@ func (c *ObjectsGetIamPolicyCall) Generation(generation int64) *ObjectsGetIamPol return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsGetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsGetIamPolicyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsGetIamPolicyCall) UserProject(userProject string) *ObjectsGetIamPolicyCall { @@ -9046,6 +9676,11 @@ func (c *ObjectsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -9185,6 +9820,14 @@ func (c *ObjectsInsertCall) Projection(projection string) *ObjectsInsertCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsInsertCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsInsertCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsInsertCall) UserProject(userProject string) *ObjectsInsertCall { @@ -9453,6 +10096,11 @@ func (c *ObjectsInsertCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -9550,6 +10198,14 @@ func (c *ObjectsListCall) Projection(projection string) *ObjectsListCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsListCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsListCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsListCall) UserProject(userProject string) *ObjectsListCall { @@ -9717,6 +10373,11 @@ func (c *ObjectsListCall) Do(opts ...googleapi.CallOption) (*Objects, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -9861,6 +10522,14 @@ func (c *ObjectsPatchCall) Projection(projection string) *ObjectsPatchCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsPatchCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsPatchCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request, for Requester Pays buckets. func (c *ObjectsPatchCall) UserProject(userProject string) *ObjectsPatchCall { @@ -10043,6 +10712,11 @@ func (c *ObjectsPatchCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request, for Requester Pays buckets.", // "location": "query", @@ -10220,6 +10894,14 @@ func (c *ObjectsRewriteCall) Projection(projection string) *ObjectsRewriteCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsRewriteCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsRewriteCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // RewriteToken sets the optional parameter "rewriteToken": Include this // field (from the previous rewrite response) on each rewrite request // after the first one, until the rewrite response 'done' flag is true. @@ -10454,6 +11136,11 @@ func (c *ObjectsRewriteCall) Do(opts ...googleapi.CallOption) (*RewriteResponse, // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "rewriteToken": { // "description": "Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.", // "location": "query", @@ -10528,6 +11215,14 @@ func (c *ObjectsSetIamPolicyCall) Generation(generation int64) *ObjectsSetIamPol return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsSetIamPolicyCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsSetIamPolicyCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsSetIamPolicyCall) UserProject(userProject string) *ObjectsSetIamPolicyCall { @@ -10652,6 +11347,11 @@ func (c *ObjectsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, err // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -10704,6 +11404,14 @@ func (c *ObjectsTestIamPermissionsCall) Generation(generation int64) *ObjectsTes return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsTestIamPermissionsCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsTestIamPermissionsCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsTestIamPermissionsCall) UserProject(userProject string) *ObjectsTestIamPermissionsCall { @@ -10844,6 +11552,11 @@ func (c *ObjectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestI // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -10961,6 +11674,14 @@ func (c *ObjectsUpdateCall) Projection(projection string) *ObjectsUpdateCall { return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsUpdateCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsUpdateCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsUpdateCall) UserProject(userProject string) *ObjectsUpdateCall { @@ -11143,6 +11864,11 @@ func (c *ObjectsUpdateCall) Do(opts ...googleapi.CallOption) (*Object, error) { // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -11239,6 +11965,14 @@ func (c *ObjectsWatchAllCall) Projection(projection string) *ObjectsWatchAllCall return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ObjectsWatchAllCall) ProvisionalUserProject(provisionalUserProject string) *ObjectsWatchAllCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. Required for Requester Pays buckets. func (c *ObjectsWatchAllCall) UserProject(userProject string) *ObjectsWatchAllCall { @@ -11398,6 +12132,11 @@ func (c *ObjectsWatchAllCall) Do(opts ...googleapi.CallOption) (*Channel, error) // "location": "query", // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request. Required for Requester Pays buckets.", // "location": "query", @@ -11429,6 +12168,838 @@ func (c *ObjectsWatchAllCall) Do(opts ...googleapi.CallOption) (*Channel, error) } +// method id "storage.projects.hmacKeys.create": + +type ProjectsHmacKeysCreateCall struct { + s *Service + projectId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Create: Creates a new HMAC key for the specified service account. +func (r *ProjectsHmacKeysService) Create(projectId string, serviceAccountEmail string) *ProjectsHmacKeysCreateCall { + c := &ProjectsHmacKeysCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.urlParams_.Set("serviceAccountEmail", serviceAccountEmail) + return c +} + +// UserProject sets the optional parameter "userProject": The project to +// be billed for this request. +func (c *ProjectsHmacKeysCreateCall) UserProject(userProject string) *ProjectsHmacKeysCreateCall { + c.urlParams_.Set("userProject", userProject) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsHmacKeysCreateCall) Fields(s ...googleapi.Field) *ProjectsHmacKeysCreateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsHmacKeysCreateCall) Context(ctx context.Context) *ProjectsHmacKeysCreateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsHmacKeysCreateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsHmacKeysCreateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/hmacKeys") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.projects.hmacKeys.create" call. +// Exactly one of *HmacKey or error will be non-nil. Any non-2xx status +// code is an error. Response headers are in either +// *HmacKey.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *ProjectsHmacKeysCreateCall) Do(opts ...googleapi.CallOption) (*HmacKey, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &HmacKey{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates a new HMAC key for the specified service account.", + // "httpMethod": "POST", + // "id": "storage.projects.hmacKeys.create", + // "parameterOrder": [ + // "projectId", + // "serviceAccountEmail" + // ], + // "parameters": { + // "projectId": { + // "description": "Project ID owning the service account.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "serviceAccountEmail": { + // "description": "Email address of the service account.", + // "location": "query", + // "required": true, + // "type": "string" + // }, + // "userProject": { + // "description": "The project to be billed for this request.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "projects/{projectId}/hmacKeys", + // "response": { + // "$ref": "HmacKey" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control" + // ] + // } + +} + +// method id "storage.projects.hmacKeys.delete": + +type ProjectsHmacKeysDeleteCall struct { + s *Service + projectId string + accessId string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes an HMAC key. +func (r *ProjectsHmacKeysService) Delete(projectId string, accessId string) *ProjectsHmacKeysDeleteCall { + c := &ProjectsHmacKeysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.accessId = accessId + return c +} + +// UserProject sets the optional parameter "userProject": The project to +// be billed for this request. +func (c *ProjectsHmacKeysDeleteCall) UserProject(userProject string) *ProjectsHmacKeysDeleteCall { + c.urlParams_.Set("userProject", userProject) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsHmacKeysDeleteCall) Fields(s ...googleapi.Field) *ProjectsHmacKeysDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsHmacKeysDeleteCall) Context(ctx context.Context) *ProjectsHmacKeysDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsHmacKeysDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsHmacKeysDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/hmacKeys/{accessId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + "accessId": c.accessId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.projects.hmacKeys.delete" call. +func (c *ProjectsHmacKeysDeleteCall) Do(opts ...googleapi.CallOption) error { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if err != nil { + return err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return err + } + return nil + // { + // "description": "Deletes an HMAC key.", + // "httpMethod": "DELETE", + // "id": "storage.projects.hmacKeys.delete", + // "parameterOrder": [ + // "projectId", + // "accessId" + // ], + // "parameters": { + // "accessId": { + // "description": "Name of the HMAC key to be deleted.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "projectId": { + // "description": "Project ID owning the requested key", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "userProject": { + // "description": "The project to be billed for this request.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "projects/{projectId}/hmacKeys/{accessId}", + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_write" + // ] + // } + +} + +// method id "storage.projects.hmacKeys.get": + +type ProjectsHmacKeysGetCall struct { + s *Service + projectId string + accessId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves an HMAC key's metadata +func (r *ProjectsHmacKeysService) Get(projectId string, accessId string) *ProjectsHmacKeysGetCall { + c := &ProjectsHmacKeysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.accessId = accessId + return c +} + +// UserProject sets the optional parameter "userProject": The project to +// be billed for this request. +func (c *ProjectsHmacKeysGetCall) UserProject(userProject string) *ProjectsHmacKeysGetCall { + c.urlParams_.Set("userProject", userProject) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsHmacKeysGetCall) Fields(s ...googleapi.Field) *ProjectsHmacKeysGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsHmacKeysGetCall) IfNoneMatch(entityTag string) *ProjectsHmacKeysGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsHmacKeysGetCall) Context(ctx context.Context) *ProjectsHmacKeysGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsHmacKeysGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsHmacKeysGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/hmacKeys/{accessId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + "accessId": c.accessId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.projects.hmacKeys.get" call. +// Exactly one of *HmacKeyMetadata or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *HmacKeyMetadata.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsHmacKeysGetCall) Do(opts ...googleapi.CallOption) (*HmacKeyMetadata, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &HmacKeyMetadata{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves an HMAC key's metadata", + // "httpMethod": "GET", + // "id": "storage.projects.hmacKeys.get", + // "parameterOrder": [ + // "projectId", + // "accessId" + // ], + // "parameters": { + // "accessId": { + // "description": "Name of the HMAC key.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "projectId": { + // "description": "Project ID owning the service account of the requested key.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "userProject": { + // "description": "The project to be billed for this request.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "projects/{projectId}/hmacKeys/{accessId}", + // "response": { + // "$ref": "HmacKeyMetadata" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/cloud-platform.read-only", + // "https://www.googleapis.com/auth/devstorage.read_only" + // ] + // } + +} + +// method id "storage.projects.hmacKeys.list": + +type ProjectsHmacKeysListCall struct { + s *Service + projectId string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of HMAC keys matching the criteria. +func (r *ProjectsHmacKeysService) List(projectId string) *ProjectsHmacKeysListCall { + c := &ProjectsHmacKeysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + return c +} + +// MaxResults sets the optional parameter "maxResults": Maximum number +// of items to return in a single page of responses. The service uses +// this parameter or 250 items, whichever is smaller. The max number of +// items per page will also be limited by the number of distinct service +// accounts in the response. If the number of service accounts in a +// single response is too high, the page will truncated and a next page +// token will be returned. +func (c *ProjectsHmacKeysListCall) MaxResults(maxResults int64) *ProjectsHmacKeysListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// PageToken sets the optional parameter "pageToken": A +// previously-returned page token representing part of the larger set of +// results to view. +func (c *ProjectsHmacKeysListCall) PageToken(pageToken string) *ProjectsHmacKeysListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ServiceAccountEmail sets the optional parameter +// "serviceAccountEmail": If present, only keys for the given service +// account are returned. +func (c *ProjectsHmacKeysListCall) ServiceAccountEmail(serviceAccountEmail string) *ProjectsHmacKeysListCall { + c.urlParams_.Set("serviceAccountEmail", serviceAccountEmail) + return c +} + +// ShowDeletedKeys sets the optional parameter "showDeletedKeys": +// Whether or not to show keys in the DELETED state. +func (c *ProjectsHmacKeysListCall) ShowDeletedKeys(showDeletedKeys bool) *ProjectsHmacKeysListCall { + c.urlParams_.Set("showDeletedKeys", fmt.Sprint(showDeletedKeys)) + return c +} + +// UserProject sets the optional parameter "userProject": The project to +// be billed for this request. +func (c *ProjectsHmacKeysListCall) UserProject(userProject string) *ProjectsHmacKeysListCall { + c.urlParams_.Set("userProject", userProject) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsHmacKeysListCall) Fields(s ...googleapi.Field) *ProjectsHmacKeysListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *ProjectsHmacKeysListCall) IfNoneMatch(entityTag string) *ProjectsHmacKeysListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsHmacKeysListCall) Context(ctx context.Context) *ProjectsHmacKeysListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsHmacKeysListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsHmacKeysListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/hmacKeys") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.projects.hmacKeys.list" call. +// Exactly one of *HmacKeysMetadata or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *HmacKeysMetadata.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsHmacKeysListCall) Do(opts ...googleapi.CallOption) (*HmacKeysMetadata, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &HmacKeysMetadata{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves a list of HMAC keys matching the criteria.", + // "httpMethod": "GET", + // "id": "storage.projects.hmacKeys.list", + // "parameterOrder": [ + // "projectId" + // ], + // "parameters": { + // "maxResults": { + // "default": "250", + // "description": "Maximum number of items to return in a single page of responses. The service uses this parameter or 250 items, whichever is smaller. The max number of items per page will also be limited by the number of distinct service accounts in the response. If the number of service accounts in a single response is too high, the page will truncated and a next page token will be returned.", + // "format": "uint32", + // "location": "query", + // "minimum": "0", + // "type": "integer" + // }, + // "pageToken": { + // "description": "A previously-returned page token representing part of the larger set of results to view.", + // "location": "query", + // "type": "string" + // }, + // "projectId": { + // "description": "Name of the project in which to look for HMAC keys.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "serviceAccountEmail": { + // "description": "If present, only keys for the given service account are returned.", + // "location": "query", + // "type": "string" + // }, + // "showDeletedKeys": { + // "description": "Whether or not to show keys in the DELETED state.", + // "location": "query", + // "type": "boolean" + // }, + // "userProject": { + // "description": "The project to be billed for this request.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "projects/{projectId}/hmacKeys", + // "response": { + // "$ref": "HmacKeysMetadata" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/cloud-platform.read-only", + // "https://www.googleapis.com/auth/devstorage.full_control", + // "https://www.googleapis.com/auth/devstorage.read_only" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *ProjectsHmacKeysListCall) Pages(ctx context.Context, f func(*HmacKeysMetadata) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "storage.projects.hmacKeys.update": + +type ProjectsHmacKeysUpdateCall struct { + s *Service + projectId string + accessId string + hmackeymetadata *HmacKeyMetadata + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the state of an HMAC key. See the HMAC Key resource +// descriptor for valid states. +func (r *ProjectsHmacKeysService) Update(projectId string, accessId string, hmackeymetadata *HmacKeyMetadata) *ProjectsHmacKeysUpdateCall { + c := &ProjectsHmacKeysUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectId = projectId + c.accessId = accessId + c.hmackeymetadata = hmackeymetadata + return c +} + +// UserProject sets the optional parameter "userProject": The project to +// be billed for this request. +func (c *ProjectsHmacKeysUpdateCall) UserProject(userProject string) *ProjectsHmacKeysUpdateCall { + c.urlParams_.Set("userProject", userProject) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsHmacKeysUpdateCall) Fields(s ...googleapi.Field) *ProjectsHmacKeysUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsHmacKeysUpdateCall) Context(ctx context.Context) *ProjectsHmacKeysUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsHmacKeysUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsHmacKeysUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.hmackeymetadata) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{projectId}/hmacKeys/{accessId}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PUT", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "projectId": c.projectId, + "accessId": c.accessId, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "storage.projects.hmacKeys.update" call. +// Exactly one of *HmacKeyMetadata or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *HmacKeyMetadata.ServerResponse.Header or (if a response was returned +// at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *ProjectsHmacKeysUpdateCall) Do(opts ...googleapi.CallOption) (*HmacKeyMetadata, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, &googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + } + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + ret := &HmacKeyMetadata{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Updates the state of an HMAC key. See the HMAC Key resource descriptor for valid states.", + // "httpMethod": "PUT", + // "id": "storage.projects.hmacKeys.update", + // "parameterOrder": [ + // "projectId", + // "accessId" + // ], + // "parameters": { + // "accessId": { + // "description": "Name of the HMAC key being updated.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "projectId": { + // "description": "Project ID owning the service account of the updated key.", + // "location": "path", + // "required": true, + // "type": "string" + // }, + // "userProject": { + // "description": "The project to be billed for this request.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "projects/{projectId}/hmacKeys/{accessId}", + // "request": { + // "$ref": "HmacKeyMetadata" + // }, + // "response": { + // "$ref": "HmacKeyMetadata" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/devstorage.full_control" + // ] + // } + +} + // method id "storage.projects.serviceAccount.get": type ProjectsServiceAccountGetCall struct { @@ -11448,6 +13019,14 @@ func (r *ProjectsServiceAccountService) Get(projectId string) *ProjectsServiceAc return c } +// ProvisionalUserProject sets the optional parameter +// "provisionalUserProject": The project to be billed for this request +// if the target bucket is requester-pays bucket. +func (c *ProjectsServiceAccountGetCall) ProvisionalUserProject(provisionalUserProject string) *ProjectsServiceAccountGetCall { + c.urlParams_.Set("provisionalUserProject", provisionalUserProject) + return c +} + // UserProject sets the optional parameter "userProject": The project to // be billed for this request. func (c *ProjectsServiceAccountGetCall) UserProject(userProject string) *ProjectsServiceAccountGetCall { @@ -11566,6 +13145,11 @@ func (c *ProjectsServiceAccountGetCall) Do(opts ...googleapi.CallOption) (*Servi // "required": true, // "type": "string" // }, + // "provisionalUserProject": { + // "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", + // "location": "query", + // "type": "string" + // }, // "userProject": { // "description": "The project to be billed for this request.", // "location": "query", diff --git a/vendor/google.golang.org/appengine/README.md b/vendor/google.golang.org/appengine/README.md index d86768a2c..9fdbacd3c 100644 --- a/vendor/google.golang.org/appengine/README.md +++ b/vendor/google.golang.org/appengine/README.md @@ -71,3 +71,30 @@ A few APIs were cleaned up, and there are some differences: [blobstore package](https://google.golang.org/appengine/blobstore). * `appengine/socket` is not required on App Engine flexible environment / Managed VMs. Use the standard `net` package instead. + +## Key Encode/Decode compatibiltiy to help with datastore library migrations + +Key compatibility updates have been added to help customers transition from google.golang.org/appengine/datastore to cloud.google.com/go/datastore. +The `EnableKeyConversion` enables automatic conversion from a key encoded with cloud.google.com/go/datastore to google.golang.org/appengine/datastore key type. + +### Enabling key conversion + +Enable key conversion by calling `EnableKeyConversion(ctx)` in the `/_ah/start` handler for basic and manual scaling or any handler in automatic scaling. + +#### 1. Basic or manual scaling + +This start handler will enable key conversion for all handlers in the service. + +``` +http.HandleFunc("/_ah/start", func(w http.ResponseWriter, r *http.Request) { + datastore.EnableKeyConversion(appengine.NewContext(r)) +}) +``` + +#### 2. Automatic scaling + +`/_ah/start` is not supported for automatic scaling and `/_ah/warmup` is not guaranteed to run, so you must call `datastore.EnableKeyConversion(appengine.NewContext(r))` +before you use code that needs key conversion. + +You may want to add this to each of your handlers, or introduce middleware where it's called. +`EnableKeyConversion` is safe for concurrent use. Any call to it after the first is ignored. \ No newline at end of file diff --git a/vendor/google.golang.org/appengine/go.mod b/vendor/google.golang.org/appengine/go.mod index f449359d2..451592798 100644 --- a/vendor/google.golang.org/appengine/go.mod +++ b/vendor/google.golang.org/appengine/go.mod @@ -1,7 +1,10 @@ module google.golang.org/appengine require ( - github.com/golang/protobuf v1.2.0 - golang.org/x/net v0.0.0-20180724234803-3673e40ba225 - golang.org/x/text v0.3.0 + github.com/golang/protobuf v1.3.1 + golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 // indirect + golang.org/x/net v0.0.0-20190603091049-60506f45cf65 + golang.org/x/sys v0.0.0-20190606165138-5da285871e9c // indirect + golang.org/x/text v0.3.2 + golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b // indirect ) diff --git a/vendor/google.golang.org/appengine/go.sum b/vendor/google.golang.org/appengine/go.sum index 1a221c089..cb3232556 100644 --- a/vendor/google.golang.org/appengine/go.sum +++ b/vendor/google.golang.org/appengine/go.sum @@ -1,6 +1,22 @@ github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/net v0.0.0-20180724234803-3673e40ba225 h1:kNX+jCowfMYzvlSvJu5pQWEmyWFrBXJ3PBy10xKMXK8= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go index 57ae35f6b..0b9907f89 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -1,12 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/rpc/status.proto -package status // import "google.golang.org/genproto/googleapis/rpc/status" +package status -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import any "github.com/golang/protobuf/ptypes/any" +import ( + fmt "fmt" + math "math" + + proto "github.com/golang/protobuf/proto" + any "github.com/golang/protobuf/ptypes/any" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -17,7 +20,7 @@ var _ = math.Inf // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // The `Status` type defines a logical error model that is suitable for // different programming environments, including REST APIs and RPC APIs. It is @@ -93,16 +96,17 @@ func (m *Status) Reset() { *m = Status{} } func (m *Status) String() string { return proto.CompactTextString(m) } func (*Status) ProtoMessage() {} func (*Status) Descriptor() ([]byte, []int) { - return fileDescriptor_status_ced6ddf76350620b, []int{0} + return fileDescriptor_24d244abaf643bfe, []int{0} } + func (m *Status) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Status.Unmarshal(m, b) } func (m *Status) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Status.Marshal(b, m, deterministic) } -func (dst *Status) XXX_Merge(src proto.Message) { - xxx_messageInfo_Status.Merge(dst, src) +func (m *Status) XXX_Merge(src proto.Message) { + xxx_messageInfo_Status.Merge(m, src) } func (m *Status) XXX_Size() int { return xxx_messageInfo_Status.Size(m) @@ -138,9 +142,9 @@ func init() { proto.RegisterType((*Status)(nil), "google.rpc.Status") } -func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor_status_ced6ddf76350620b) } +func init() { proto.RegisterFile("google/rpc/status.proto", fileDescriptor_24d244abaf643bfe) } -var fileDescriptor_status_ced6ddf76350620b = []byte{ +var fileDescriptor_24d244abaf643bfe = []byte{ // 209 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4f, 0xcf, 0xcf, 0x4f, 0xcf, 0x49, 0xd5, 0x2f, 0x2a, 0x48, 0xd6, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, 0x2b, 0x28, diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md index ca34e8aa0..6e69b28c2 100644 --- a/vendor/google.golang.org/grpc/CONTRIBUTING.md +++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md @@ -11,22 +11,46 @@ In order to protect both you and ourselves, you will need to sign the ## Guidelines for Pull Requests How to get your contributions merged smoothly and quickly. - -- Create **small PRs** that are narrowly focused on **addressing a single concern**. We often times receive PRs that are trying to fix several things at a time, but only one fix is considered acceptable, nothing gets merged and both author's & review's time is wasted. Create more PRs to address different concerns and everyone will be happy. - -- For speculative changes, consider opening an issue and discussing it first. If you are suggesting a behavioral or API change, consider starting with a [gRFC proposal](https://github.com/grpc/proposal). - -- Provide a good **PR description** as a record of **what** change is being made and **why** it was made. Link to a github issue if it exists. - -- Don't fix code style and formatting unless you are already changing that line to address an issue. PRs with irrelevant changes won't be merged. If you do want to fix formatting or style, do that in a separate PR. - -- Unless your PR is trivial, you should expect there will be reviewer comments that you'll need to address before merging. We expect you to be reasonably responsive to those comments, otherwise the PR will be closed after 2-3 weeks of inactivity. - -- Maintain **clean commit history** and use **meaningful commit messages**. PRs with messy commit history are difficult to review and won't be merged. Use `rebase -i upstream/master` to curate your commit history and/or to bring in latest changes from master (but avoid rebasing in the middle of a code review). - -- Keep your PR up to date with upstream/master (if there are merge conflicts, we can't really merge your change). - -- **All tests need to be passing** before your change can be merged. We recommend you **run tests locally** before creating your PR to catch breakages early on. + +- Create **small PRs** that are narrowly focused on **addressing a single + concern**. We often times receive PRs that are trying to fix several things at + a time, but only one fix is considered acceptable, nothing gets merged and + both author's & review's time is wasted. Create more PRs to address different + concerns and everyone will be happy. + +- The grpc package should only depend on standard Go packages and a small number + of exceptions. If your contribution introduces new dependencies which are NOT + in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a + discussion with gRPC-Go authors and consultants. + +- For speculative changes, consider opening an issue and discussing it first. If + you are suggesting a behavioral or API change, consider starting with a [gRFC + proposal](https://github.com/grpc/proposal). + +- Provide a good **PR description** as a record of **what** change is being made + and **why** it was made. Link to a github issue if it exists. + +- Don't fix code style and formatting unless you are already changing that line + to address an issue. PRs with irrelevant changes won't be merged. If you do + want to fix formatting or style, do that in a separate PR. + +- Unless your PR is trivial, you should expect there will be reviewer comments + that you'll need to address before merging. We expect you to be reasonably + responsive to those comments, otherwise the PR will be closed after 2-3 weeks + of inactivity. + +- Maintain **clean commit history** and use **meaningful commit messages**. PRs + with messy commit history are difficult to review and won't be merged. Use + `rebase -i upstream/master` to curate your commit history and/or to bring in + latest changes from master (but avoid rebasing in the middle of a code + review). + +- Keep your PR up to date with upstream/master (if there are merge conflicts, we + can't really merge your change). + +- **All tests need to be passing** before your change can be merged. We + recommend you **run tests locally** before creating your PR to catch breakages + early on. - `make all` to test everything, OR - `make vet` to catch vet errors - `make test` to run the tests @@ -34,4 +58,3 @@ How to get your contributions merged smoothly and quickly. - optional `make testappengine` to run tests with appengine - Exceptions to the rules can be made if there's a compelling reason for doing so. - diff --git a/vendor/google.golang.org/grpc/README.md b/vendor/google.golang.org/grpc/README.md index f5eec6717..afbc43db5 100644 --- a/vendor/google.golang.org/grpc/README.md +++ b/vendor/google.golang.org/grpc/README.md @@ -1,42 +1,96 @@ # gRPC-Go -[![Build Status](https://travis-ci.org/grpc/grpc-go.svg)](https://travis-ci.org/grpc/grpc-go) [![GoDoc](https://godoc.org/google.golang.org/grpc?status.svg)](https://godoc.org/google.golang.org/grpc) [![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go) +[![Build Status](https://travis-ci.org/grpc/grpc-go.svg)](https://travis-ci.org/grpc/grpc-go) +[![GoDoc](https://godoc.org/google.golang.org/grpc?status.svg)](https://godoc.org/google.golang.org/grpc) +[![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go) -The Go implementation of [gRPC](https://grpc.io/): A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the [gRPC Quick Start: Go](https://grpc.io/docs/quickstart/go.html) guide. +The Go implementation of [gRPC](https://grpc.io/): A high performance, open +source, general RPC framework that puts mobile and HTTP/2 first. For more +information see the [gRPC Quick Start: +Go](https://grpc.io/docs/quickstart/go.html) guide. Installation ------------ -To install this package, you need to install Go and setup your Go workspace on your computer. The simplest way to install the library is to run: +To install this package, you need to install Go and setup your Go workspace on +your computer. The simplest way to install the library is to run: ``` $ go get -u google.golang.org/grpc ``` +With Go module support (Go 1.11+), simply `import "google.golang.org/grpc"` in +your source code and `go [build|run|test]` will automatically download the +necessary dependencies ([Go modules +ref](https://github.com/golang/go/wiki/Modules)). + +If you are trying to access grpc-go from within China, please see the +[FAQ](#FAQ) below. + Prerequisites ------------- - gRPC-Go requires Go 1.9 or later. -Constraints ------------ -The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a discussion with gRPC-Go authors and consultants. - Documentation ------------- -See [API documentation](https://godoc.org/google.golang.org/grpc) for package and API descriptions and find examples in the [examples directory](examples/). +- See [godoc](https://godoc.org/google.golang.org/grpc) for package and API + descriptions. +- Documentation on specific topics can be found in the [Documentation + directory](Documentation/). +- Examples can be found in the [examples directory](examples/). Performance ----------- -See the current benchmarks for some of the languages supported in [this dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696). +Performance benchmark data for grpc-go and other languages is maintained in +[this +dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696). Status ------ -General Availability [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). +General Availability [Google Cloud Platform Launch +Stages](https://cloud.google.com/terms/launch-stages). FAQ --- +#### I/O Timeout Errors + +The `golang.org` domain may be blocked from some countries. `go get` usually +produces an error like the following when this happens: + +``` +$ go get -u google.golang.org/grpc +package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) +``` + +To build Go code, there are several options: + +- Set up a VPN and access google.golang.org through that. + +- Without Go module support: `git clone` the repo manually: + + ``` + git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc + ``` + + You will need to do the same for all of grpc's dependencies in `golang.org`, + e.g. `golang.org/x/net`. + +- With Go module support: it is possible to use the `replace` feature of `go + mod` to create aliases for golang.org packages. In your project's directory: + + ``` + go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@latest + go mod tidy + go mod vendor + go build -mod=vendor + ``` + + Again, this will need to be done for all transitive dependencies hosted on + golang.org as well. Please refer to [this + issue](https://github.com/golang/go/issues/28652) in the golang repo regarding + this concern. + #### Compiling error, undefined: grpc.SupportPackageIsVersion Please update proto package, gRPC package and rebuild the proto files: diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index fafede238..4b72daa8b 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -138,6 +138,8 @@ type ClientConn interface { ResolveNow(resolver.ResolveNowOption) // Target returns the dial target for this ClientConn. + // + // Deprecated: Use the Target field in the BuildOptions instead. Target() string } @@ -155,6 +157,10 @@ type BuildOptions struct { Dialer func(context.Context, string) (net.Conn, error) // ChannelzParentID is the entity parent's channelz unique identification number. ChannelzParentID int64 + // Target contains the parsed address info of the dial target. It is the same resolver.Target as + // passed to the resolver. + // See the documentation for the resolver.Target type for details about what it contains. + Target resolver.Target } // Builder creates a balancer. diff --git a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go index 29bda6353..66e9a44ac 100644 --- a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go +++ b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go @@ -20,7 +20,6 @@ package grpc import ( "context" - "strings" "sync" "google.golang.org/grpc/balancer" @@ -34,13 +33,7 @@ type balancerWrapperBuilder struct { } func (bwb *balancerWrapperBuilder) Build(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer { - targetAddr := cc.Target() - targetSplitted := strings.Split(targetAddr, ":///") - if len(targetSplitted) >= 2 { - targetAddr = targetSplitted[1] - } - - bwb.b.Start(targetAddr, BalancerConfig{ + bwb.b.Start(opts.Target.Endpoint, BalancerConfig{ DialCreds: opts.DialCreds, Dialer: opts.Dialer, }) @@ -49,7 +42,7 @@ func (bwb *balancerWrapperBuilder) Build(cc balancer.ClientConn, opts balancer.B balancer: bwb.b, pickfirst: pickfirst, cc: cc, - targetAddr: targetAddr, + targetAddr: opts.Target.Endpoint, startCh: make(chan struct{}), conns: make(map[resolver.Address]balancer.SubConn), connSt: make(map[balancer.SubConn]*scState), @@ -120,7 +113,7 @@ func (bw *balancerWrapper) lbWatcher() { } for addrs := range notifyCh { - grpclog.Infof("balancerWrapper: got update addr from Notify: %v\n", addrs) + grpclog.Infof("balancerWrapper: got update addr from Notify: %v", addrs) if bw.pickfirst { var ( oldA resolver.Address diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index bd2d2b317..78e6d178a 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -137,6 +137,9 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * opt.apply(&cc.dopts) } + chainUnaryClientInterceptors(cc) + chainStreamClientInterceptors(cc) + defer func() { if err != nil { cc.Close() @@ -290,6 +293,7 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * CredsBundle: cc.dopts.copts.CredsBundle, Dialer: cc.dopts.copts.Dialer, ChannelzParentID: cc.channelzID, + Target: cc.parsedTarget, } // Build the resolver. @@ -327,6 +331,68 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * return cc, nil } +// chainUnaryClientInterceptors chains all unary client interceptors into one. +func chainUnaryClientInterceptors(cc *ClientConn) { + interceptors := cc.dopts.chainUnaryInts + // Prepend dopts.unaryInt to the chaining interceptors if it exists, since unaryInt will + // be executed before any other chained interceptors. + if cc.dopts.unaryInt != nil { + interceptors = append([]UnaryClientInterceptor{cc.dopts.unaryInt}, interceptors...) + } + var chainedInt UnaryClientInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error { + return interceptors[0](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, 0, invoker), opts...) + } + } + cc.dopts.unaryInt = chainedInt +} + +// getChainUnaryInvoker recursively generate the chained unary invoker. +func getChainUnaryInvoker(interceptors []UnaryClientInterceptor, curr int, finalInvoker UnaryInvoker) UnaryInvoker { + if curr == len(interceptors)-1 { + return finalInvoker + } + return func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { + return interceptors[curr+1](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, curr+1, finalInvoker), opts...) + } +} + +// chainStreamClientInterceptors chains all stream client interceptors into one. +func chainStreamClientInterceptors(cc *ClientConn) { + interceptors := cc.dopts.chainStreamInts + // Prepend dopts.streamInt to the chaining interceptors if it exists, since streamInt will + // be executed before any other chained interceptors. + if cc.dopts.streamInt != nil { + interceptors = append([]StreamClientInterceptor{cc.dopts.streamInt}, interceptors...) + } + var chainedInt StreamClientInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) { + return interceptors[0](ctx, desc, cc, method, getChainStreamer(interceptors, 0, streamer), opts...) + } + } + cc.dopts.streamInt = chainedInt +} + +// getChainStreamer recursively generate the chained client stream constructor. +func getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStreamer Streamer) Streamer { + if curr == len(interceptors)-1 { + return finalStreamer + } + return func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) { + return interceptors[curr+1](ctx, desc, cc, method, getChainStreamer(interceptors, curr+1, finalStreamer), opts...) + } +} + // connectivityStateManager keeps the connectivity.State of ClientConn. // This struct will eventually be exported so the balancers can access it. type connectivityStateManager struct { @@ -537,6 +603,7 @@ func (cc *ClientConn) updateResolverState(s resolver.State) error { } else if cc.balancerWrapper == nil { // Balancer dial option was set, and this is the first time handling // resolved addresses. Build a balancer with dopts.balancerBuilder. + cc.curBalancerName = cc.dopts.balancerBuilder.Name() cc.balancerWrapper = newCCBalancerWrapper(cc, cc.dopts.balancerBuilder, cc.balancerBuildOpts) } diff --git a/vendor/google.golang.org/grpc/codes/codes.go b/vendor/google.golang.org/grpc/codes/codes.go index d9b9d5782..02738839d 100644 --- a/vendor/google.golang.org/grpc/codes/codes.go +++ b/vendor/google.golang.org/grpc/codes/codes.go @@ -132,7 +132,8 @@ const ( // Unavailable indicates the service is currently unavailable. // This is a most likely a transient condition and may be corrected - // by retrying with a backoff. + // by retrying with a backoff. Note that it is not always safe to retry + // non-idempotent operations. // // See litmus test above for deciding between FailedPrecondition, // Aborted, and Unavailable. diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index e114fecbb..69c003159 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -39,8 +39,12 @@ import ( // dialOptions configure a Dial call. dialOptions are set by the DialOption // values passed to Dial. type dialOptions struct { - unaryInt UnaryClientInterceptor - streamInt StreamClientInterceptor + unaryInt UnaryClientInterceptor + streamInt StreamClientInterceptor + + chainUnaryInts []UnaryClientInterceptor + chainStreamInts []StreamClientInterceptor + cp Compressor dc Decompressor bs backoff.Strategy @@ -414,6 +418,17 @@ func WithUnaryInterceptor(f UnaryClientInterceptor) DialOption { }) } +// WithChainUnaryInterceptor returns a DialOption that specifies the chained +// interceptor for unary RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All interceptors added by this method will be chained, and the interceptor +// defined by WithUnaryInterceptor will always be prepended to the chain. +func WithChainUnaryInterceptor(interceptors ...UnaryClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.chainUnaryInts = append(o.chainUnaryInts, interceptors...) + }) +} + // WithStreamInterceptor returns a DialOption that specifies the interceptor for // streaming RPCs. func WithStreamInterceptor(f StreamClientInterceptor) DialOption { @@ -422,6 +437,17 @@ func WithStreamInterceptor(f StreamClientInterceptor) DialOption { }) } +// WithChainStreamInterceptor returns a DialOption that specifies the chained +// interceptor for unary RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All interceptors added by this method will be chained, and the interceptor +// defined by WithStreamInterceptor will always be prepended to the chain. +func WithChainStreamInterceptor(interceptors ...StreamClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.chainStreamInts = append(o.chainStreamInts, interceptors...) + }) +} + // WithAuthority returns a DialOption that specifies the value to be used as the // :authority pseudo-header. This value only works with WithInsecure and has no // effect if TransportCredentials are present. @@ -440,12 +466,12 @@ func WithChannelzParentID(id int64) DialOption { }) } -// WithDisableServiceConfig returns a DialOption that causes grpc to ignore any +// WithDisableServiceConfig returns a DialOption that causes gRPC to ignore any // service config provided by the resolver and provides a hint to the resolver // to not fetch service configs. // -// Note that, this dial option only disables service config from resolver. If -// default service config is provided, grpc will use the default service config. +// Note that this dial option only disables service config from resolver. If +// default service config is provided, gRPC will use the default service config. func WithDisableServiceConfig() DialOption { return newFuncDialOption(func(o *dialOptions) { o.disableServiceConfig = true diff --git a/vendor/google.golang.org/grpc/go.mod b/vendor/google.golang.org/grpc/go.mod index e5c9b4df6..b75c069aa 100644 --- a/vendor/google.golang.org/grpc/go.mod +++ b/vendor/google.golang.org/grpc/go.mod @@ -4,13 +4,10 @@ require ( cloud.google.com/go v0.26.0 // indirect github.com/BurntSushi/toml v0.3.1 // indirect github.com/client9/misspell v0.3.4 - github.com/envoyproxy/go-control-plane v0.6.9 - github.com/gogo/googleapis v1.1.0 // indirect - github.com/gogo/protobuf v1.2.0 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/mock v1.1.1 github.com/golang/protobuf v1.2.0 - github.com/lyft/protoc-gen-validate v0.0.13 // indirect + github.com/google/go-cmp v0.2.0 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 golang.org/x/net v0.0.0-20190311183353-d8887717615a golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be diff --git a/vendor/google.golang.org/grpc/go.sum b/vendor/google.golang.org/grpc/go.sum index 37d3dbadc..2a1723474 100644 --- a/vendor/google.golang.org/grpc/go.sum +++ b/vendor/google.golang.org/grpc/go.sum @@ -4,20 +4,14 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/envoyproxy/go-control-plane v0.6.9 h1:deEH9W8ZAUGNbCdX+9iNzBOGrAOrnpJGoy0PcTqk/tE= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= diff --git a/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/vendor/google.golang.org/grpc/internal/channelz/funcs.go index 041520d35..f0744f993 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/funcs.go +++ b/vendor/google.golang.org/grpc/internal/channelz/funcs.go @@ -24,6 +24,7 @@ package channelz import ( + "fmt" "sort" "sync" "sync/atomic" @@ -95,9 +96,14 @@ func (d *dbWrapper) get() *channelMap { // NewChannelzStorage initializes channelz data storage and id generator. // +// This function returns a cleanup function to wait for all channelz state to be reset by the +// grpc goroutines when those entities get closed. By using this cleanup function, we make sure tests +// don't mess up each other, i.e. lingering goroutine from previous test doing entity removal happen +// to remove some entity just register by the new test, since the id space is the same. +// // Note: This function is exported for testing purpose only. User should not call // it in most cases. -func NewChannelzStorage() { +func NewChannelzStorage() (cleanup func() error) { db.set(&channelMap{ topLevelChannels: make(map[int64]struct{}), channels: make(map[int64]*channel), @@ -107,6 +113,28 @@ func NewChannelzStorage() { subChannels: make(map[int64]*subChannel), }) idGen.reset() + return func() error { + var err error + cm := db.get() + if cm == nil { + return nil + } + for i := 0; i < 1000; i++ { + cm.mu.Lock() + if len(cm.topLevelChannels) == 0 && len(cm.servers) == 0 && len(cm.channels) == 0 && len(cm.subChannels) == 0 && len(cm.listenSockets) == 0 && len(cm.normalSockets) == 0 { + cm.mu.Unlock() + // all things stored in the channelz map have been cleared. + return nil + } + cm.mu.Unlock() + time.Sleep(10 * time.Millisecond) + } + + cm.mu.Lock() + err = fmt.Errorf("after 10s the channelz map has not been cleaned up yet, topchannels: %d, servers: %d, channels: %d, subchannels: %d, listen sockets: %d, normal sockets: %d", len(cm.topLevelChannels), len(cm.servers), len(cm.channels), len(cm.subChannels), len(cm.listenSockets), len(cm.normalSockets)) + cm.mu.Unlock() + return err + } } // GetTopChannels returns a slice of top channel's ChannelMetric, along with a diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index 9dee6db61..e26e28141 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -549,7 +549,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (_ *Strea s.write(recvMsg{err: err}) close(s.done) // If headerChan isn't closed, then close it. - if atomic.SwapUint32(&s.headerDone, 1) == 0 { + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { close(s.headerChan) } @@ -713,7 +713,7 @@ func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2. s.write(recvMsg{err: err}) } // If headerChan isn't closed, then close it. - if atomic.SwapUint32(&s.headerDone, 1) == 0 { + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { s.noHeaders = true close(s.headerChan) } @@ -794,21 +794,21 @@ func (t *http2Client) Close() error { // stream is closed. If there are no active streams, the transport is closed // immediately. This does nothing if the transport is already draining or // closing. -func (t *http2Client) GracefulClose() error { +func (t *http2Client) GracefulClose() { t.mu.Lock() // Make sure we move to draining only from active. if t.state == draining || t.state == closing { t.mu.Unlock() - return nil + return } t.state = draining active := len(t.activeStreams) t.mu.Unlock() if active == 0 { - return t.Close() + t.Close() + return } t.controlBuf.put(&incomingGoAway{}) - return nil } // Write formats the data into HTTP2 data frame(s) and sends it out. The caller @@ -1142,26 +1142,24 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { } endStream := frame.StreamEnded() atomic.StoreUint32(&s.bytesReceived, 1) - initialHeader := atomic.SwapUint32(&s.headerDone, 1) == 0 + initialHeader := atomic.LoadUint32(&s.headerChanClosed) == 0 if !initialHeader && !endStream { - // As specified by RFC 7540, a HEADERS frame (and associated CONTINUATION frames) can only appear - // at the start or end of a stream. Therefore, second HEADERS frame must have EOS bit set. + // As specified by gRPC over HTTP2, a HEADERS frame (and associated CONTINUATION frames) can only appear at the start or end of a stream. Therefore, second HEADERS frame must have EOS bit set. st := status.New(codes.Internal, "a HEADERS frame cannot appear in the middle of a stream") t.closeStream(s, st.Err(), true, http2.ErrCodeProtocol, st, nil, false) return } state := &decodeState{} - // Initialize isGRPC value to be !initialHeader, since if a gRPC ResponseHeader has been received - // which indicates peer speaking gRPC, we are in gRPC mode. + // Initialize isGRPC value to be !initialHeader, since if a gRPC Response-Headers has already been received, then it means that the peer is speaking gRPC and we are in gRPC mode. state.data.isGRPC = !initialHeader if err := state.decodeHeader(frame); err != nil { t.closeStream(s, err, true, http2.ErrCodeProtocol, status.Convert(err), nil, endStream) return } - var isHeader bool + isHeader := false defer func() { if t.statsHandler != nil { if isHeader { @@ -1180,10 +1178,10 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { } }() - // If headers haven't been received yet. - if initialHeader { + // If headerChan hasn't been closed yet + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { if !endStream { - // Headers frame is ResponseHeader. + // HEADERS frame block carries a Response-Headers. isHeader = true // These values can be set without any synchronization because // stream goroutine will read it only after seeing a closed @@ -1192,14 +1190,17 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { if len(state.data.mdata) > 0 { s.header = state.data.mdata } - close(s.headerChan) - return + } else { + // HEADERS frame block carries a Trailers-Only. + s.noHeaders = true } - // Headers frame is Trailers-only. - s.noHeaders = true close(s.headerChan) } + if !endStream { + return + } + // if client received END_STREAM from server while stream was still active, send RST_STREAM rst := s.getState() == streamActive t.closeStream(s, io.EOF, rst, http2.ErrCodeNo, state.status(), state.data.mdata, true) diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index 7fbbf5972..435092e5c 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -437,7 +437,7 @@ func (t *http2Server) HandleStreams(handle func(*Stream), traceCtx func(context. s := t.activeStreams[se.StreamID] t.mu.Unlock() if s != nil { - t.closeStream(s, true, se.Code, nil, false) + t.closeStream(s, true, se.Code, false) } else { t.controlBuf.put(&cleanupStream{ streamID: se.StreamID, @@ -579,7 +579,7 @@ func (t *http2Server) handleData(f *http2.DataFrame) { } if size > 0 { if err := s.fc.onData(size); err != nil { - t.closeStream(s, true, http2.ErrCodeFlowControl, nil, false) + t.closeStream(s, true, http2.ErrCodeFlowControl, false) return } if f.Header().Flags.Has(http2.FlagDataPadded) { @@ -604,11 +604,18 @@ func (t *http2Server) handleData(f *http2.DataFrame) { } func (t *http2Server) handleRSTStream(f *http2.RSTStreamFrame) { - s, ok := t.getStream(f) - if !ok { + // If the stream is not deleted from the transport's active streams map, then do a regular close stream. + if s, ok := t.getStream(f); ok { + t.closeStream(s, false, 0, false) return } - t.closeStream(s, false, 0, nil, false) + // If the stream is already deleted from the active streams map, then put a cleanupStream item into controlbuf to delete the stream from loopy writer's established streams map. + t.controlBuf.put(&cleanupStream{ + streamID: f.Header().StreamID, + rst: false, + rstCode: 0, + onWrite: func() {}, + }) } func (t *http2Server) handleSettings(f *http2.SettingsFrame) { @@ -772,7 +779,7 @@ func (t *http2Server) writeHeaderLocked(s *Stream) error { if err != nil { return err } - t.closeStream(s, true, http2.ErrCodeInternal, nil, false) + t.closeStream(s, true, http2.ErrCodeInternal, false) return ErrHeaderListSizeLimitViolation } if t.stats != nil { @@ -836,12 +843,12 @@ func (t *http2Server) WriteStatus(s *Stream, st *status.Status) error { if err != nil { return err } - t.closeStream(s, true, http2.ErrCodeInternal, nil, false) + t.closeStream(s, true, http2.ErrCodeInternal, false) return ErrHeaderListSizeLimitViolation } // Send a RST_STREAM after the trailers if the client has not already half-closed. rst := s.getState() == streamActive - t.closeStream(s, rst, http2.ErrCodeNo, trailingHeader, true) + t.finishStream(s, rst, http2.ErrCodeNo, trailingHeader, true) if t.stats != nil { t.stats.HandleRPC(s.Context(), &stats.OutTrailer{}) } @@ -1012,16 +1019,24 @@ func (t *http2Server) Close() error { } // deleteStream deletes the stream s from transport's active streams. -func (t *http2Server) deleteStream(s *Stream, eosReceived bool) { - t.mu.Lock() - if _, ok := t.activeStreams[s.id]; !ok { - t.mu.Unlock() - return +func (t *http2Server) deleteStream(s *Stream, eosReceived bool) (oldState streamState) { + oldState = s.swapState(streamDone) + if oldState == streamDone { + // If the stream was already done, return. + return oldState } - delete(t.activeStreams, s.id) - if len(t.activeStreams) == 0 { - t.idle = time.Now() + // In case stream sending and receiving are invoked in separate + // goroutines (e.g., bi-directional streaming), cancel needs to be + // called to interrupt the potential blocking on other goroutines. + s.cancel() + + t.mu.Lock() + if _, ok := t.activeStreams[s.id]; ok { + delete(t.activeStreams, s.id) + if len(t.activeStreams) == 0 { + t.idle = time.Now() + } } t.mu.Unlock() @@ -1032,55 +1047,38 @@ func (t *http2Server) deleteStream(s *Stream, eosReceived bool) { atomic.AddInt64(&t.czData.streamsFailed, 1) } } + + return oldState } -// closeStream clears the footprint of a stream when the stream is not needed -// any more. -func (t *http2Server) closeStream(s *Stream, rst bool, rstCode http2.ErrCode, hdr *headerFrame, eosReceived bool) { - // Mark the stream as done - oldState := s.swapState(streamDone) +// finishStream closes the stream and puts the trailing headerFrame into controlbuf. +func (t *http2Server) finishStream(s *Stream, rst bool, rstCode http2.ErrCode, hdr *headerFrame, eosReceived bool) { + oldState := t.deleteStream(s, eosReceived) + // If the stream is already closed, then don't put trailing header to controlbuf. + if oldState == streamDone { + return + } - // In case stream sending and receiving are invoked in separate - // goroutines (e.g., bi-directional streaming), cancel needs to be - // called to interrupt the potential blocking on other goroutines. - s.cancel() - - // Deletes the stream from active streams - t.deleteStream(s, eosReceived) - - cleanup := &cleanupStream{ + hdr.cleanup = &cleanupStream{ streamID: s.id, rst: rst, rstCode: rstCode, onWrite: func() {}, } - - // No trailer. Puts cleanupFrame into transport's control buffer. - if hdr == nil { - t.controlBuf.put(cleanup) - return - } - - // We do the check here, because of the following scenario: - // 1. closeStream is called first with a trailer. A trailer item with a piggybacked cleanup item - // is put to control buffer. - // 2. Loopy writer is waiting on a stream quota. It will never get it because client errored at - // some point. So loopy can't act on trailer - // 3. Client sends a RST_STREAM due to the error. Then closeStream is called without a trailer as - // the result of the received RST_STREAM. - // If we do this check at the beginning of the closeStream, then we won't put a cleanup item in - // response to received RST_STREAM into the control buffer and outStream in loopy writer will - // never get cleaned up. - - // If the stream is already done, don't send the trailer. - if oldState == streamDone { - return - } - - hdr.cleanup = cleanup t.controlBuf.put(hdr) } +// closeStream clears the footprint of a stream when the stream is not needed any more. +func (t *http2Server) closeStream(s *Stream, rst bool, rstCode http2.ErrCode, eosReceived bool) { + t.deleteStream(s, eosReceived) + t.controlBuf.put(&cleanupStream{ + streamID: s.id, + rst: rst, + rstCode: rstCode, + onWrite: func() {}, + }) +} + func (t *http2Server) RemoteAddr() net.Addr { return t.remoteAddr } diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 7f82cbb08..4bf583efc 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -204,8 +204,8 @@ type Stream struct { // is used to adjust flow control, if needed. requestRead func(int) - headerChan chan struct{} // closed to indicate the end of header metadata. - headerDone uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. + headerChan chan struct{} // closed to indicate the end of header metadata. + headerChanClosed uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. // hdrMu protects header and trailer metadata on the server-side. hdrMu sync.Mutex @@ -578,9 +578,12 @@ type ClientTransport interface { // is called only once. Close() error - // GracefulClose starts to tear down the transport. It stops accepting - // new RPCs and wait the completion of the pending RPCs. - GracefulClose() error + // GracefulClose starts to tear down the transport: the transport will stop + // accepting new RPCs and NewStream will return error. Once all streams are + // finished, the transport will close. + // + // It does not block. + GracefulClose() // Write sends the data for the given stream. A nil stream indicates // the write is to be performed on the transport as a whole. diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index f9625496c..45baa2ae1 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -120,6 +120,14 @@ func (bp *pickerWrapper) pick(ctx context.Context, failfast bool, opts balancer. bp.mu.Unlock() select { case <-ctx.Done(): + if connectionErr := bp.connectionError(); connectionErr != nil { + switch ctx.Err() { + case context.DeadlineExceeded: + return nil, nil, status.Errorf(codes.DeadlineExceeded, "latest connection error: %v", connectionErr) + case context.Canceled: + return nil, nil, status.Errorf(codes.Canceled, "latest connection error: %v", connectionErr) + } + } return nil, nil, ctx.Err() case <-ch: } diff --git a/vendor/google.golang.org/grpc/preloader.go b/vendor/google.golang.org/grpc/preloader.go new file mode 100644 index 000000000..76acbbcc9 --- /dev/null +++ b/vendor/google.golang.org/grpc/preloader.go @@ -0,0 +1,64 @@ +/* + * + * Copyright 2019 gRPC 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 grpc + +import ( + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// PreparedMsg is responsible for creating a Marshalled and Compressed object. +// +// This API is EXPERIMENTAL. +type PreparedMsg struct { + // Struct for preparing msg before sending them + encodedData []byte + hdr []byte + payload []byte +} + +// Encode marshalls and compresses the message using the codec and compressor for the stream. +func (p *PreparedMsg) Encode(s Stream, msg interface{}) error { + ctx := s.Context() + rpcInfo, ok := rpcInfoFromContext(ctx) + if !ok { + return status.Errorf(codes.Internal, "grpc: unable to get rpcInfo") + } + + // check if the context has the relevant information to prepareMsg + if rpcInfo.preloaderInfo == nil { + return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo is nil") + } + if rpcInfo.preloaderInfo.codec == nil { + return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo.codec is nil") + } + + // prepare the msg + data, err := encode(rpcInfo.preloaderInfo.codec, msg) + if err != nil { + return err + } + p.encodedData = data + compData, err := compress(data, rpcInfo.preloaderInfo.cp, rpcInfo.preloaderInfo.comp) + if err != nil { + return err + } + p.hdr, p.payload = msgHeader(data, compData) + return nil +} diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go index 583559907..297492e87 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go @@ -66,6 +66,9 @@ var ( var ( defaultResolver netResolver = net.DefaultResolver + // To prevent excessive re-resolution, we enforce a rate limit on DNS + // resolution requests. + minDNSResRate = 30 * time.Second ) var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { @@ -241,7 +244,13 @@ func (d *dnsResolver) watcher() { return case <-d.t.C: case <-d.rn: + if !d.t.Stop() { + // Before resetting a timer, it should be stopped to prevent racing with + // reads on it's channel. + <-d.t.C + } } + result, sc := d.lookup() // Next lookup should happen within an interval defined by d.freq. It may be // more often due to exponential retry on empty address list. @@ -254,6 +263,16 @@ func (d *dnsResolver) watcher() { } d.cc.NewServiceConfig(sc) d.cc.NewAddress(result) + + // Sleep to prevent excessive re-resolutions. Incoming resolution requests + // will be queued in d.rn. + t := time.NewTimer(minDNSResRate) + select { + case <-t.C: + case <-d.ctx.Done(): + t.Stop() + return + } } } diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go index 52ec603da..f6f6934d9 100644 --- a/vendor/google.golang.org/grpc/resolver/resolver.go +++ b/vendor/google.golang.org/grpc/resolver/resolver.go @@ -132,6 +132,21 @@ type ClientConn interface { // Target represents a target for gRPC, as specified in: // https://github.com/grpc/grpc/blob/master/doc/naming.md. +// It is parsed from the target string that gets passed into Dial or DialContext by the user. And +// grpc passes it to the resolver and the balancer. +// +// If the target follows the naming spec, and the parsed scheme is registered with grpc, we will +// parse the target string according to the spec. e.g. "dns://some_authority/foo.bar" will be parsed +// into &Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} +// +// If the target does not contain a scheme, we will apply the default scheme, and set the Target to +// be the full target string. e.g. "foo.bar" will be parsed into +// &Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"}. +// +// If the parsed scheme is not registered (i.e. no corresponding resolver available to resolve the +// endpoint), we set the Scheme to be the default scheme, and set the Endpoint to be the full target +// string. e.g. target string "unknown_scheme://authority/endpoint" will be parsed into +// &Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"}. type Target struct { Scheme string Authority string diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index 2a595622d..088c3f1b2 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -694,14 +694,34 @@ func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interf return nil } +// Information about RPC type rpcInfo struct { - failfast bool + failfast bool + preloaderInfo *compressorInfo +} + +// Information about Preloader +// Responsible for storing codec, and compressors +// If stream (s) has context s.Context which stores rpcInfo that has non nil +// pointers to codec, and compressors, then we can use preparedMsg for Async message prep +// and reuse marshalled bytes +type compressorInfo struct { + codec baseCodec + cp Compressor + comp encoding.Compressor } type rpcInfoContextKey struct{} -func newContextWithRPCInfo(ctx context.Context, failfast bool) context.Context { - return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{failfast: failfast}) +func newContextWithRPCInfo(ctx context.Context, failfast bool, codec baseCodec, cp Compressor, comp encoding.Compressor) context.Context { + return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{ + failfast: failfast, + preloaderInfo: &compressorInfo{ + codec: codec, + cp: cp, + comp: comp, + }, + }) } func rpcInfoFromContext(ctx context.Context) (s *rpcInfo, ok bool) { diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index 8115828fd..495a4f9b8 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -86,7 +86,7 @@ type service struct { // Server is a gRPC server to serve RPC requests. type Server struct { - opts options + opts serverOptions mu sync.Mutex // guards following lis map[net.Listener]bool @@ -108,7 +108,7 @@ type Server struct { czData *channelzData } -type options struct { +type serverOptions struct { creds credentials.TransportCredentials codec baseCodec cp Compressor @@ -131,7 +131,7 @@ type options struct { maxHeaderListSize *uint32 } -var defaultServerOptions = options{ +var defaultServerOptions = serverOptions{ maxReceiveMessageSize: defaultServerMaxReceiveMessageSize, maxSendMessageSize: defaultServerMaxSendMessageSize, connectionTimeout: 120 * time.Second, @@ -140,7 +140,33 @@ var defaultServerOptions = options{ } // A ServerOption sets options such as credentials, codec and keepalive parameters, etc. -type ServerOption func(*options) +type ServerOption interface { + apply(*serverOptions) +} + +// EmptyServerOption does not alter the server configuration. It can be embedded +// in another structure to build custom server options. +// +// This API is EXPERIMENTAL. +type EmptyServerOption struct{} + +func (EmptyServerOption) apply(*serverOptions) {} + +// funcServerOption wraps a function that modifies serverOptions into an +// implementation of the ServerOption interface. +type funcServerOption struct { + f func(*serverOptions) +} + +func (fdo *funcServerOption) apply(do *serverOptions) { + fdo.f(do) +} + +func newFuncServerOption(f func(*serverOptions)) *funcServerOption { + return &funcServerOption{ + f: f, + } +} // WriteBufferSize determines how much data can be batched before doing a write on the wire. // The corresponding memory allocation for this buffer will be twice the size to keep syscalls low. @@ -148,9 +174,9 @@ type ServerOption func(*options) // Zero will disable the write buffer such that each write will be on underlying connection. // Note: A Send call may not directly translate to a write. func WriteBufferSize(s int) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.writeBufferSize = s - } + }) } // ReadBufferSize lets you set the size of read buffer, this determines how much data can be read at most @@ -159,25 +185,25 @@ func WriteBufferSize(s int) ServerOption { // Zero will disable read buffer for a connection so data framer can access the underlying // conn directly. func ReadBufferSize(s int) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.readBufferSize = s - } + }) } // InitialWindowSize returns a ServerOption that sets window size for stream. // The lower bound for window size is 64K and any value smaller than that will be ignored. func InitialWindowSize(s int32) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.initialWindowSize = s - } + }) } // InitialConnWindowSize returns a ServerOption that sets window size for a connection. // The lower bound for window size is 64K and any value smaller than that will be ignored. func InitialConnWindowSize(s int32) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.initialConnWindowSize = s - } + }) } // KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server. @@ -187,25 +213,25 @@ func KeepaliveParams(kp keepalive.ServerParameters) ServerOption { kp.Time = time.Second } - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.keepaliveParams = kp - } + }) } // KeepaliveEnforcementPolicy returns a ServerOption that sets keepalive enforcement policy for the server. func KeepaliveEnforcementPolicy(kep keepalive.EnforcementPolicy) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.keepalivePolicy = kep - } + }) } // CustomCodec returns a ServerOption that sets a codec for message marshaling and unmarshaling. // // This will override any lookups by content-subtype for Codecs registered with RegisterCodec. func CustomCodec(codec Codec) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.codec = codec - } + }) } // RPCCompressor returns a ServerOption that sets a compressor for outbound @@ -216,9 +242,9 @@ func CustomCodec(codec Codec) ServerOption { // // Deprecated: use encoding.RegisterCompressor instead. func RPCCompressor(cp Compressor) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.cp = cp - } + }) } // RPCDecompressor returns a ServerOption that sets a decompressor for inbound @@ -227,9 +253,9 @@ func RPCCompressor(cp Compressor) ServerOption { // // Deprecated: use encoding.RegisterCompressor instead. func RPCDecompressor(dc Decompressor) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.dc = dc - } + }) } // MaxMsgSize returns a ServerOption to set the max message size in bytes the server can receive. @@ -243,73 +269,73 @@ func MaxMsgSize(m int) ServerOption { // MaxRecvMsgSize returns a ServerOption to set the max message size in bytes the server can receive. // If this is not set, gRPC uses the default 4MB. func MaxRecvMsgSize(m int) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.maxReceiveMessageSize = m - } + }) } // MaxSendMsgSize returns a ServerOption to set the max message size in bytes the server can send. // If this is not set, gRPC uses the default `math.MaxInt32`. func MaxSendMsgSize(m int) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.maxSendMessageSize = m - } + }) } // MaxConcurrentStreams returns a ServerOption that will apply a limit on the number // of concurrent streams to each ServerTransport. func MaxConcurrentStreams(n uint32) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.maxConcurrentStreams = n - } + }) } // Creds returns a ServerOption that sets credentials for server connections. func Creds(c credentials.TransportCredentials) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.creds = c - } + }) } // UnaryInterceptor returns a ServerOption that sets the UnaryServerInterceptor for the // server. Only one unary interceptor can be installed. The construction of multiple // interceptors (e.g., chaining) can be implemented at the caller. func UnaryInterceptor(i UnaryServerInterceptor) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { if o.unaryInt != nil { panic("The unary server interceptor was already set and may not be reset.") } o.unaryInt = i - } + }) } // StreamInterceptor returns a ServerOption that sets the StreamServerInterceptor for the // server. Only one stream interceptor can be installed. func StreamInterceptor(i StreamServerInterceptor) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { if o.streamInt != nil { panic("The stream server interceptor was already set and may not be reset.") } o.streamInt = i - } + }) } // InTapHandle returns a ServerOption that sets the tap handle for all the server // transport to be created. Only one can be installed. func InTapHandle(h tap.ServerInHandle) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { if o.inTapHandle != nil { panic("The tap handle was already set and may not be reset.") } o.inTapHandle = h - } + }) } // StatsHandler returns a ServerOption that sets the stats handler for the server. func StatsHandler(h stats.Handler) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.statsHandler = h - } + }) } // UnknownServiceHandler returns a ServerOption that allows for adding a custom @@ -319,7 +345,7 @@ func StatsHandler(h stats.Handler) ServerOption { // The handling function has full access to the Context of the request and the // stream, and the invocation bypasses interceptors. func UnknownServiceHandler(streamHandler StreamHandler) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.unknownStreamDesc = &StreamDesc{ StreamName: "unknown_service_handler", Handler: streamHandler, @@ -327,7 +353,7 @@ func UnknownServiceHandler(streamHandler StreamHandler) ServerOption { ClientStreams: true, ServerStreams: true, } - } + }) } // ConnectionTimeout returns a ServerOption that sets the timeout for @@ -337,17 +363,17 @@ func UnknownServiceHandler(streamHandler StreamHandler) ServerOption { // // This API is EXPERIMENTAL. func ConnectionTimeout(d time.Duration) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.connectionTimeout = d - } + }) } // MaxHeaderListSize returns a ServerOption that sets the max (uncompressed) size // of header list that the server is prepared to accept. func MaxHeaderListSize(s uint32) ServerOption { - return func(o *options) { + return newFuncServerOption(func(o *serverOptions) { o.maxHeaderListSize = &s - } + }) } // NewServer creates a gRPC server which has no service registered and has not @@ -355,7 +381,7 @@ func MaxHeaderListSize(s uint32) ServerOption { func NewServer(opt ...ServerOption) *Server { opts := defaultServerOptions for _, o := range opt { - o(&opts) + o.apply(&opts) } s := &Server{ lis: make(map[net.Listener]bool), diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index 6e2bf51e0..e10e62317 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -245,7 +245,7 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth trInfo.tr.LazyLog(&trInfo.firstLine, false) ctx = trace.NewContext(ctx, trInfo.tr) } - ctx = newContextWithRPCInfo(ctx, c.failFast) + ctx = newContextWithRPCInfo(ctx, c.failFast, c.codec, cp, comp) sh := cc.dopts.copts.StatsHandler var beginTime time.Time if sh != nil { @@ -677,15 +677,13 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) { if !cs.desc.ClientStreams { cs.sentLast = true } - data, err := encode(cs.codec, m) + + // load hdr, payload, data + hdr, payload, data, err := prepareMsg(m, cs.codec, cs.cp, cs.comp) if err != nil { return err } - compData, err := compress(data, cs.cp, cs.comp) - if err != nil { - return err - } - hdr, payload := msgHeader(data, compData) + // TODO(dfawley): should we be checking len(data) instead? if len(payload) > *cs.callInfo.maxSendMessageSize { return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), *cs.callInfo.maxSendMessageSize) @@ -1150,15 +1148,13 @@ func (as *addrConnStream) SendMsg(m interface{}) (err error) { if !as.desc.ClientStreams { as.sentLast = true } - data, err := encode(as.codec, m) + + // load hdr, payload, data + hdr, payld, _, err := prepareMsg(m, as.codec, as.cp, as.comp) if err != nil { return err } - compData, err := compress(data, as.cp, as.comp) - if err != nil { - return err - } - hdr, payld := msgHeader(data, compData) + // TODO(dfawley): should we be checking len(data) instead? if len(payld) > *as.callInfo.maxSendMessageSize { return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payld), *as.callInfo.maxSendMessageSize) @@ -1395,15 +1391,13 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { ss.t.IncrMsgSent() } }() - data, err := encode(ss.codec, m) + + // load hdr, payload, data + hdr, payload, data, err := prepareMsg(m, ss.codec, ss.cp, ss.comp) if err != nil { return err } - compData, err := compress(data, ss.cp, ss.comp) - if err != nil { - return err - } - hdr, payload := msgHeader(data, compData) + // TODO(dfawley): should we be checking len(data) instead? if len(payload) > ss.maxSendMessageSize { return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), ss.maxSendMessageSize) @@ -1496,3 +1490,24 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { func MethodFromServerStream(stream ServerStream) (string, bool) { return Method(stream.Context()) } + +// prepareMsg returns the hdr, payload and data +// using the compressors passed or using the +// passed preparedmsg +func prepareMsg(m interface{}, codec baseCodec, cp Compressor, comp encoding.Compressor) (hdr, payload, data []byte, err error) { + if preparedMsg, ok := m.(*PreparedMsg); ok { + return preparedMsg.hdr, preparedMsg.payload, preparedMsg.encodedData, nil + } + // The input interface is not a prepared msg. + // Marshal and Compress the data at this point + data, err = encode(codec, m) + if err != nil { + return nil, nil, nil, err + } + compData, err := compress(data, cp, comp) + if err != nil { + return nil, nil, nil, err + } + hdr, payload = msgHeader(data, compData) + return hdr, payload, data, nil +} diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index 50f823c90..5c8cb709a 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.20.0" +const Version = "1.21.1" diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh index 5b1f36bef..11037b94d 100644 --- a/vendor/google.golang.org/grpc/vet.sh +++ b/vendor/google.golang.org/grpc/vet.sh @@ -75,7 +75,7 @@ git ls-files "*.go" | xargs grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)\|DO # - Do not import math/rand for real library code. Use internal/grpcrand for # thread safety. -git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand') +git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand\|wrr_test') # - Ensure all ptypes proto packages are renamed when importing. git ls-files "*.go" | (! xargs grep "\(import \|^\s*\)\"github.com/golang/protobuf/ptypes/") @@ -86,9 +86,9 @@ go list -f {{.Dir}} ./... | xargs go run test/go_vet/vet.go # - gofmt, goimports, golint (with exceptions for generated code), go vet. gofmt -s -d -l . 2>&1 | fail_on_output -goimports -l . 2>&1 | fail_on_output +goimports -l . 2>&1 | (! grep -vE "(_mock|\.pb)\.go:") | fail_on_output golint ./... 2>&1 | (! grep -vE "(_mock|\.pb)\.go:") -go tool vet -all . +go vet -all . # - Check that generated proto files are up to date. if [[ -z "${VET_SKIP_PROTO}" ]]; then diff --git a/vendor/modules.txt b/vendor/modules.txt index eba861c56..67036c482 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2,22 +2,22 @@ bazil.org/fuse bazil.org/fuse/fs bazil.org/fuse/fuseutil -# cloud.google.com/go v0.37.4 +# cloud.google.com/go v0.40.0 cloud.google.com/go/compute/metadata -# github.com/Azure/azure-pipeline-go v0.1.8 +# github.com/Azure/azure-pipeline-go v0.1.9 github.com/Azure/azure-pipeline-go/pipeline # github.com/Azure/azure-storage-blob-go v0.6.0 github.com/Azure/azure-storage-blob-go/azblob # github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 github.com/Azure/go-ansiterm github.com/Azure/go-ansiterm/winterm -# github.com/Unknwon/goconfig v0.0.0-20181105214110-56bd8ab18619 +# github.com/Unknwon/goconfig v0.0.0-20190425194916-3dba17dd7b9e github.com/Unknwon/goconfig # github.com/a8m/tree v0.0.0-20181222104329-6a0b80129de4 github.com/a8m/tree # github.com/abbot/go-http-auth v0.4.0 github.com/abbot/go-http-auth -# github.com/anacrolix/dms v0.0.0-20180117034613-8af4925bffb5 +# github.com/anacrolix/dms v1.0.0 github.com/anacrolix/dms/dlna github.com/anacrolix/dms/soap github.com/anacrolix/dms/ssdp @@ -25,7 +25,7 @@ github.com/anacrolix/dms/upnp github.com/anacrolix/dms/upnpav # github.com/atotto/clipboard v0.1.2 github.com/atotto/clipboard -# github.com/aws/aws-sdk-go v1.19.11 +# github.com/aws/aws-sdk-go v1.20.10 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/awserr github.com/aws/aws-sdk-go/aws/corehandlers @@ -56,15 +56,16 @@ github.com/aws/aws-sdk-go/private/protocol/eventstream github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi github.com/aws/aws-sdk-go/private/protocol/rest github.com/aws/aws-sdk-go/private/protocol/restxml +github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil github.com/aws/aws-sdk-go/service/s3/s3iface github.com/aws/aws-sdk-go/internal/sdkrand +github.com/aws/aws-sdk-go/private/protocol/json/jsonutil github.com/aws/aws-sdk-go/service/sts github.com/aws/aws-sdk-go/private/protocol/query -github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil github.com/aws/aws-sdk-go/private/protocol/query/queryutil # github.com/billziss-gh/cgofuse v1.1.0 github.com/billziss-gh/cgofuse/fuse -# github.com/coreos/bbolt v1.3.2 +# github.com/coreos/bbolt v1.3.3 github.com/coreos/bbolt # github.com/cpuguy83/go-md2man v1.0.10 github.com/cpuguy83/go-md2man/md2man @@ -120,7 +121,7 @@ github.com/mitchellh/go-homedir github.com/ncw/go-acd # github.com/ncw/swift v1.0.47 github.com/ncw/swift -# github.com/nsf/termbox-go v0.0.0-20190325093121-288510b9734e +# github.com/nsf/termbox-go v0.0.0-20190624072549-eeb6cd0a1762 github.com/nsf/termbox-go # github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd github.com/okzk/sdnotify @@ -142,11 +143,11 @@ github.com/pmezard/go-difflib/difflib github.com/rfjakob/eme # github.com/russross/blackfriday v1.5.2 github.com/russross/blackfriday -# github.com/sevlyar/go-daemon v0.1.4 +# github.com/sevlyar/go-daemon v0.1.5 github.com/sevlyar/go-daemon # github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e github.com/skratchdot/open-golang/open -# github.com/spf13/cobra v0.0.4-0.20190321000552-67fc4837d267 +# github.com/spf13/cobra v0.0.5 github.com/spf13/cobra github.com/spf13/cobra/doc # github.com/spf13/pflag v1.0.3 @@ -154,7 +155,7 @@ github.com/spf13/pflag # github.com/stretchr/testify v1.3.0 github.com/stretchr/testify/assert github.com/stretchr/testify/require -# github.com/t3rm1n4l/go-mega v0.0.0-20190430100803-72151b53bb44 +# github.com/t3rm1n4l/go-mega v0.0.0-20190528125457-55e675378686 github.com/t3rm1n4l/go-mega # github.com/xanzy/ssh-agent v0.2.1 github.com/xanzy/ssh-agent @@ -170,7 +171,7 @@ github.com/yunify/qingstor-sdk-go/request/builder github.com/yunify/qingstor-sdk-go/request/signer github.com/yunify/qingstor-sdk-go/request/unpacker github.com/yunify/qingstor-sdk-go -# go.opencensus.io v0.20.2 +# go.opencensus.io v0.22.0 go.opencensus.io/plugin/ochttp go.opencensus.io/plugin/ochttp/propagation/b3 go.opencensus.io/stats @@ -178,16 +179,16 @@ go.opencensus.io/stats/view go.opencensus.io/tag go.opencensus.io/trace go.opencensus.io/trace/propagation +go.opencensus.io/metric/metricdata go.opencensus.io/stats/internal go.opencensus.io/internal/tagencoding -go.opencensus.io/metric/metricdata go.opencensus.io/metric/metricproducer go.opencensus.io/internal go.opencensus.io/trace/internal go.opencensus.io/trace/tracestate go.opencensus.io/resource go.opencensus.io -# golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 +# golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4 golang.org/x/crypto/nacl/secretbox golang.org/x/crypto/scrypt golang.org/x/crypto/ssh @@ -203,7 +204,7 @@ golang.org/x/crypto/internal/chacha20 golang.org/x/crypto/bcrypt golang.org/x/crypto/ed25519/internal/edwards25519 golang.org/x/crypto/blowfish -# golang.org/x/net v0.0.0-20190606173856-1492cefac77f +# golang.org/x/net v0.0.0-20190620200207-3b0461eec859 golang.org/x/net/websocket golang.org/x/net/html golang.org/x/net/publicsuffix @@ -222,7 +223,7 @@ golang.org/x/net/internal/iana golang.org/x/net/internal/socket golang.org/x/net/trace golang.org/x/net/internal/timeseries -# golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a +# golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/oauth2 golang.org/x/oauth2/google golang.org/x/oauth2/internal @@ -230,7 +231,7 @@ golang.org/x/oauth2/jws golang.org/x/oauth2/jwt # golang.org/x/sync v0.0.0-20190423024810-112230192c58 golang.org/x/sync/errgroup -# golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444 +# golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/cpu @@ -241,7 +242,7 @@ golang.org/x/text/secure/bidirule golang.org/x/text/unicode/bidi # golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 golang.org/x/time/rate -# google.golang.org/api v0.3.2 +# google.golang.org/api v0.7.0 google.golang.org/api/drive/v2 google.golang.org/api/drive/v3 google.golang.org/api/googleapi @@ -253,7 +254,7 @@ google.golang.org/api/googleapi/internal/uritemplates google.golang.org/api/internal google.golang.org/api/googleapi/transport google.golang.org/api/transport/http/internal/propagation -# google.golang.org/appengine v1.5.0 +# google.golang.org/appengine v1.6.1 google.golang.org/appengine google.golang.org/appengine/urlfetch google.golang.org/appengine/internal @@ -264,9 +265,9 @@ google.golang.org/appengine/internal/base google.golang.org/appengine/internal/datastore google.golang.org/appengine/internal/log google.golang.org/appengine/internal/remote_api -# google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107 +# google.golang.org/genproto v0.0.0-20190626174449-989357319d63 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.20.0 +# google.golang.org/grpc v1.21.1 google.golang.org/grpc google.golang.org/grpc/naming google.golang.org/grpc/balancer